create-blocklet 0.4.81 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/README.md +4 -4
  2. package/index.js +42 -65
  3. package/package.json +5 -6
  4. package/templates/docsite/package.json +4 -4
  5. package/templates/express-api/package.json +5 -5
  6. package/templates/html-static/package.json +2 -2
  7. package/templates/monorepo/package.json +1 -1
  8. package/templates/nextjs-dapp/package.json +7 -7
  9. package/templates/react-dapp/api/dev.js +4 -0
  10. package/templates/react-dapp/api/index.js +10 -12
  11. package/templates/react-dapp/index.html +0 -1
  12. package/templates/react-dapp/package.json +11 -14
  13. package/templates/react-dapp/vite.config.js +3 -28
  14. package/templates/react-gun-dapp/api/dev.js +4 -0
  15. package/templates/react-gun-dapp/api/index.js +4 -12
  16. package/templates/react-gun-dapp/index.html +0 -1
  17. package/templates/react-gun-dapp/package.json +15 -17
  18. package/templates/react-gun-dapp/vite.config.js +3 -33
  19. package/templates/react-static/index.html +0 -1
  20. package/templates/react-static/package.json +8 -9
  21. package/templates/react-static/vite.config.js +3 -18
  22. package/templates/solidjs-dapp/api/dev.js +4 -0
  23. package/templates/solidjs-dapp/api/index.js +10 -12
  24. package/templates/solidjs-dapp/index.html +0 -1
  25. package/templates/solidjs-dapp/package.json +14 -17
  26. package/templates/solidjs-dapp/vite.config.js +3 -23
  27. package/templates/solidjs-static/index.html +0 -1
  28. package/templates/solidjs-static/package.json +7 -8
  29. package/templates/solidjs-static/vite.config.js +3 -17
  30. package/templates/svelte-dapp/api/dev.js +4 -0
  31. package/templates/svelte-dapp/api/index.js +10 -12
  32. package/templates/svelte-dapp/index.html +0 -1
  33. package/templates/svelte-dapp/package.json +13 -15
  34. package/templates/svelte-dapp/vite.config.js +3 -23
  35. package/templates/svelte-static/index.html +0 -1
  36. package/templates/svelte-static/package.json +6 -7
  37. package/templates/svelte-static/vite.config.js +3 -17
  38. package/templates/vue-dapp/api/dev.js +4 -0
  39. package/templates/vue-dapp/api/index.js +10 -12
  40. package/templates/vue-dapp/index.html +0 -1
  41. package/templates/vue-dapp/package.json +14 -17
  42. package/templates/vue-dapp/vite.config.js +3 -27
  43. package/templates/vue-static/index.html +0 -1
  44. package/templates/vue-static/package.json +7 -8
  45. package/templates/vue-static/vite.config.js +3 -17
  46. package/templates/vue2-dapp/.eslintrc.js +0 -3
  47. package/templates/vue2-dapp/api/dev.js +4 -0
  48. package/templates/vue2-dapp/api/index.js +10 -12
  49. package/templates/vue2-dapp/{public/index.html → index.html} +4 -6
  50. package/templates/vue2-dapp/package.json +19 -24
  51. package/templates/vue2-dapp/vite.config.js +10 -0
  52. package/templates/vue2-static/.eslintrc.js +0 -3
  53. package/templates/vue2-static/index.html +15 -0
  54. package/templates/vue2-static/package.json +13 -16
  55. package/templates/vue2-static/vite.config.js +10 -0
  56. package/templates/website/package.json +3 -3
  57. package/templates/react-dapp/.env +0 -2
  58. package/templates/react-gun-dapp/.env +0 -2
  59. package/templates/react-static/.env +0 -2
  60. package/templates/solidjs-dapp/.env +0 -1
  61. package/templates/solidjs-static/.env +0 -1
  62. package/templates/svelte-dapp/.env +0 -1
  63. package/templates/svelte-static/.env +0 -1
  64. package/templates/vue-dapp/.env +0 -1
  65. package/templates/vue-static/.env +0 -1
  66. package/templates/vue2-dapp/.env +0 -1
  67. package/templates/vue2-dapp/babel.config.js +0 -3
  68. package/templates/vue2-dapp/jsconfig.json +0 -19
  69. package/templates/vue2-dapp/vue.config.js +0 -25
  70. package/templates/vue2-static/.env +0 -1
  71. package/templates/vue2-static/babel.config.js +0 -3
  72. package/templates/vue2-static/jsconfig.json +0 -19
  73. package/templates/vue2-static/vue.config.js +0 -17
package/README.md CHANGED
@@ -34,8 +34,8 @@ Currently supported template presets include:
34
34
  **dapp**
35
35
 
36
36
  - `react`
37
- - `vue3 + vite`
38
- - `vue2 + @vue/cli`
37
+ - `vue3`
38
+ - `vue2`
39
39
  - `solid-js`
40
40
  - `svelte`
41
41
  - `next.js`
@@ -44,8 +44,8 @@ Currently supported template presets include:
44
44
  **static**
45
45
 
46
46
  - `react`
47
- - `vue3 + vite`
48
- - `vue2 + @vue/cli`
47
+ - `vue3`
48
+ - `vue2`
49
49
  - `solid-js`
50
50
  - `svelte`
51
51
  - `website powered by blocklet pages`
package/index.js CHANGED
@@ -8,7 +8,6 @@ import { cd, argv, fs, YAML, chalk, path } from 'zx';
8
8
  import ora from 'ora';
9
9
  import prompts from 'prompts';
10
10
  import * as envfile from 'envfile';
11
- import getPort from 'get-port';
12
11
 
13
12
  import { echoBrand, echoDocument } from './lib/arcblock.js';
14
13
  import { getUser } from './lib/index.js';
@@ -63,11 +62,12 @@ const templates = [
63
62
  display: '[dapp] next.js',
64
63
  color: blue,
65
64
  },
66
- {
67
- name: 'react-gun-dapp',
68
- display: '[dapp] react + gun.js + express.js',
69
- color: blue,
70
- },
65
+ // 暂时不用这个模板
66
+ // {
67
+ // name: 'react-gun-dapp',
68
+ // display: '[dapp] react + gun.js + express.js',
69
+ // color: blue,
70
+ // },
71
71
  {
72
72
  name: 'react-static',
73
73
  display: '[static] react',
@@ -80,12 +80,12 @@ const templates = [
80
80
  },
81
81
  {
82
82
  name: 'vue-static',
83
- display: '[static] vue3 + vite',
83
+ display: '[static] vue3',
84
84
  color: green,
85
85
  },
86
86
  {
87
87
  name: 'vue2-static',
88
- display: '[static] vue2 + @vue/cli',
88
+ display: '[static] vue2',
89
89
  color: green,
90
90
  },
91
91
  {
@@ -121,7 +121,7 @@ const renameFiles = {
121
121
  _npmrc: '.npmrc',
122
122
  };
123
123
 
124
- const excludeFiles = ['.github', '.husky', '.vscode', '.editorconfig', '_gitignore', '_npmrc', 'version']
124
+ const excludeFiles = ['.github', '.husky', '.vscode', '.editorconfig', '_gitignore', '_npmrc', 'version'];
125
125
 
126
126
  async function init() {
127
127
  const { version } = await fs.readJSONSync(path.resolve(__dirname, 'package.json'));
@@ -155,7 +155,8 @@ async function init() {
155
155
  type: () => (!fs.existsSync(targetDir) || isEmpty(targetDir) ? null : 'confirm'),
156
156
  name: 'overwrite',
157
157
  message: () =>
158
- `${targetDir === '.' ? 'Current directory' : `Target directory "${targetDir}"`
158
+ `${
159
+ targetDir === '.' ? 'Current directory' : `Target directory "${targetDir}"`
159
160
  } is not empty. Remove existing files and continue?`,
160
161
  },
161
162
  {
@@ -177,38 +178,38 @@ async function init() {
177
178
  ...(inputTemplateName
178
179
  ? []
179
180
  : [
180
- {
181
- type: 'autocompleteMultiselect',
182
- name: 'templateNames',
183
- message: 'Choose one or more blocklet templates:',
184
- choices: templates.map((template) => {
185
- const templateColor = template.color;
186
- return {
187
- title: templateColor(template.display),
188
- value: template.name,
189
- };
190
- }),
191
- min: 1,
192
- suggest: (input, choices) => Promise.resolve(choices.filter((i) => i.title.includes(input))),
193
- },
194
- {
195
- type: (templateNames = []) => {
196
- return templateNames.length > 1 ? 'select' : null;
197
- },
198
- name: 'mainBlocklet',
199
- message: 'Please choose the main blocklet',
200
- //
201
- choices: (templateNames = []) =>
202
- templateNames.map((templateName) => {
203
- const template = templates.find((x) => x.name === templateName);
181
+ {
182
+ type: 'autocompleteMultiselect',
183
+ name: 'templateNames',
184
+ message: 'Choose one or more blocklet templates:',
185
+ choices: templates.map((template) => {
186
+ const templateColor = template.color;
204
187
  return {
205
- title: template.display,
188
+ title: templateColor(template.display),
206
189
  value: template.name,
207
190
  };
208
191
  }),
209
- initial: 1,
210
- },
211
- ]),
192
+ min: 1,
193
+ suggest: (input, choices) => Promise.resolve(choices.filter((i) => i.title.includes(input))),
194
+ },
195
+ {
196
+ type: (templateNames = []) => {
197
+ return templateNames.length > 1 ? 'select' : null;
198
+ },
199
+ name: 'mainBlocklet',
200
+ message: 'Please choose the main blocklet',
201
+ //
202
+ choices: (templateNames = []) =>
203
+ templateNames.map((templateName) => {
204
+ const template = templates.find((x) => x.name === templateName);
205
+ return {
206
+ title: template.display,
207
+ value: template.name,
208
+ };
209
+ }),
210
+ initial: 1,
211
+ },
212
+ ]),
212
213
  {
213
214
  type: 'text',
214
215
  name: 'authorName',
@@ -297,7 +298,7 @@ async function init() {
297
298
  write(file, null, templateDir, templateName);
298
299
  }
299
300
  if (mainBlocklet) {
300
- fs.removeSync(path.join(root, `blocklets/${templateName}`, 'scripts/bump-version.mjs'))
301
+ fs.removeSync(path.join(root, `blocklets/${templateName}`, 'scripts/bump-version.mjs'));
301
302
  }
302
303
  })();
303
304
 
@@ -317,30 +318,6 @@ async function init() {
317
318
  templateName
318
319
  );
319
320
 
320
- let randomPort;
321
- if (fuzzyQuery(['dapp'], templateName)) {
322
- randomPort = await getPort();
323
- }
324
- modifyEnv(
325
- (env) => {
326
- if (randomPort) {
327
- env.API_PORT = randomPort;
328
- }
329
- if (!fuzzyQuery(['website'], templateName)) {
330
- if (fuzzyQuery(['react'], templateName)) {
331
- env.REACT_APP_TITLE = finalTemplateName;
332
- } else if (fuzzyQuery(['vue', 'website'], templateName)) {
333
- env.VITE_APP_TITLE = finalTemplateName;
334
- } else {
335
- env.APP_TITLE = finalTemplateName;
336
- }
337
- }
338
- return env;
339
- },
340
- templateDir,
341
- templateName
342
- );
343
-
344
321
  // patch blocklet author
345
322
  modifyBlockletYaml(
346
323
  async (yamlConfig) => {
@@ -535,13 +512,13 @@ async function init() {
535
512
  return null;
536
513
  }
537
514
 
538
- function modifyPackage(modifyFn = () => { }, templateDir, templateName) {
515
+ function modifyPackage(modifyFn = () => {}, templateDir, templateName) {
539
516
  const pkg = JSON.parse(read('package.json', templateName));
540
517
  modifyFn(pkg);
541
518
  write('package.json', JSON.stringify(pkg, null, 2), templateDir, templateName);
542
519
  }
543
520
 
544
- function modifyBlockletYaml(modifyFn = () => { }, templateDir, templateName) {
521
+ function modifyBlockletYaml(modifyFn = () => {}, templateDir, templateName) {
545
522
  const blockletYaml = read('blocklet.yml', templateName);
546
523
  const yamlConfig = YAML.parse(blockletYaml);
547
524
  modifyFn(yamlConfig);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-blocklet",
3
- "version": "0.4.81",
3
+ "version": "0.5.0",
4
4
  "exports": "./index.js",
5
5
  "type": "module",
6
6
  "repository": "git@github.com:blocklet/create-blocklet.git",
@@ -29,14 +29,13 @@
29
29
  "test:run": "vitest run"
30
30
  },
31
31
  "dependencies": {
32
- "@arcblock/did": "^1.17.23",
33
- "@ocap/mcrypto": "^1.17.23",
34
- "@ocap/util": "^1.17.23",
32
+ "@arcblock/did": "^1.18.6",
33
+ "@ocap/mcrypto": "^1.18.6",
34
+ "@ocap/util": "^1.18.6",
35
35
  "boxen": "^6.2.1",
36
36
  "ejs": "^3.1.8",
37
37
  "envfile": "^6.18.0",
38
38
  "figlet": "^1.5.2",
39
- "get-port": "^6.1.2",
40
39
  "gradient-string": "^2.0.2",
41
40
  "jdenticon": "^3.2.0",
42
41
  "ora": "^6.1.2",
@@ -47,7 +46,7 @@
47
46
  },
48
47
  "devDependencies": {
49
48
  "@arcblock/eslint-config-base": "0.2.2",
50
- "eslint": "^8.25.0",
49
+ "eslint": "^8.26.0",
51
50
  "prettier": "^2.7.1",
52
51
  "vitest": "^0.19.1"
53
52
  }
@@ -15,10 +15,10 @@
15
15
  "bump-version": "zx scripts/bump-version.mjs"
16
16
  },
17
17
  "dependencies": {
18
- "@xmark/cli": "^2.4.83",
19
- "@xmark/theme-docs": "^2.4.83",
20
- "zx": "^7.1.1",
18
+ "@xmark/cli": "^2.4.85",
19
+ "@xmark/theme-docs": "^2.4.85",
20
+ "bumpp": "^8.2.1",
21
21
  "rimraf": "^3.0.2",
22
- "bumpp": "^8.2.1"
22
+ "zx": "^7.1.1"
23
23
  }
24
24
  }
@@ -31,20 +31,20 @@
31
31
  "license": "ISC",
32
32
  "dependencies": {
33
33
  "@arcblock/did-auth-storage-nedb": "^1.7.1",
34
- "@blocklet/sdk": "^1.8.30",
35
- "@ocap/client": "^1.17.23",
34
+ "@blocklet/sdk": "^1.8.33",
35
+ "@ocap/client": "^1.18.6",
36
36
  "dotenv-flow": "^3.2.0",
37
37
  "express": "^4.18.2"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@arcblock/eslint-config-base": "^0.2.3",
41
- "eslint": "^8.25.0",
41
+ "bumpp": "^8.2.1",
42
+ "eslint": "^8.26.0",
42
43
  "husky": "^8.0.1",
43
44
  "lint-staged": "^12.5.0",
44
45
  "nodemon": "^2.0.20",
45
46
  "prettier": "^2.7.1",
46
- "zx": "^7.1.1",
47
47
  "rimraf": "^3.0.2",
48
- "bumpp": "^8.2.1"
48
+ "zx": "^7.1.1"
49
49
  }
50
50
  }
@@ -15,8 +15,8 @@
15
15
  "author": "",
16
16
  "license": "ISC",
17
17
  "devDependencies": {
18
- "zx": "^7.1.1",
18
+ "bumpp": "^8.2.1",
19
19
  "rimraf": "^3.0.2",
20
- "bumpp": "^8.2.1"
20
+ "zx": "^7.1.1"
21
21
  }
22
22
  }
@@ -25,7 +25,7 @@
25
25
  "devDependencies": {
26
26
  "@arcblock/eslint-config": "0.2.2",
27
27
  "bumpp": "^7.2.0",
28
- "eslint": "^8.25.0",
28
+ "eslint": "^8.26.0",
29
29
  "husky": "^4.3.8",
30
30
  "prettier": "^2.7.1",
31
31
  "zx": "^7.1.1"
@@ -28,12 +28,12 @@
28
28
  ]
29
29
  },
30
30
  "dependencies": {
31
- "@arcblock/did-auth": "^1.17.23",
31
+ "@arcblock/did-auth": "^1.18.6",
32
32
  "@arcblock/did-auth-storage-nedb": "^1.7.1",
33
- "@blocklet/sdk": "^1.8.30",
34
- "@ocap/client": "^1.17.23",
35
- "@ocap/mcrypto": "^1.17.23",
36
- "@ocap/wallet": "^1.17.23",
33
+ "@blocklet/sdk": "^1.8.33",
34
+ "@ocap/client": "^1.18.6",
35
+ "@ocap/mcrypto": "^1.18.6",
36
+ "@ocap/wallet": "^1.18.6",
37
37
  "dotenv-flow": "^3.2.0",
38
38
  "express": "^4.18.2",
39
39
  "next": "12.2.3",
@@ -41,14 +41,14 @@
41
41
  "react-dom": "18.2.0"
42
42
  },
43
43
  "devDependencies": {
44
+ "bumpp": "^8.2.1",
44
45
  "eslint": "8.20.0",
45
46
  "eslint-config-next": "12.2.3",
46
47
  "husky": "^8.0.1",
47
48
  "lint-staged": "^12.5.0",
48
49
  "nodemon": "^2.0.20",
49
50
  "npm-run-all": "^4.1.5",
50
- "zx": "^7.1.1",
51
51
  "rimraf": "^3.0.2",
52
- "bumpp": "^8.2.1"
52
+ "zx": "^7.1.1"
53
53
  }
54
54
  }
@@ -0,0 +1,4 @@
1
+ const { setupClient } = require('vite-plugin-blocklet');
2
+ const { server, app } = require('./index');
3
+
4
+ setupClient(app, server);
@@ -16,36 +16,34 @@ app.set('trust proxy', true);
16
16
  app.use(cookieParser());
17
17
  app.use(express.json({ limit: '1 mb' }));
18
18
  app.use(express.urlencoded({ extended: true, limit: '1 mb' }));
19
+ app.use(cors());
19
20
 
20
21
  const router = express.Router();
21
22
  router.use('/api', require('./routes'));
23
+ app.use(router);
22
24
 
23
- const isDevelopment = process.env.NODE_ENV === 'development';
24
25
  const isProduction = process.env.NODE_ENV === 'production' || process.env.ABT_NODE_SERVICE_ENV === 'production';
25
26
 
26
27
  if (isProduction) {
27
- app.use(cors());
28
+ const staticDir = path.resolve(__dirname, '../dist');
28
29
  app.use(compression());
29
-
30
- const staticDir = path.resolve(process.env.BLOCKLET_APP_DIR, 'dist');
31
30
  app.use(express.static(staticDir, { maxAge: '30d', index: false }));
32
- app.use(router);
33
31
  app.use(fallback('index.html', { root: staticDir }));
34
32
 
35
- app.use((req, res) => {
36
- res.status(404).send('404 NOT FOUND');
37
- });
38
33
  app.use((err, req, res) => {
39
34
  logger.error(err.stack);
40
35
  res.status(500).send('Something broke!');
41
36
  });
42
- } else {
43
- app.use(router);
44
37
  }
45
38
 
46
- const port = (isDevelopment ? parseInt(process.env.API_PORT, 10) : parseInt(process.env.BLOCKLET_PORT, 10)) || 3030;
39
+ const port = parseInt(process.env.BLOCKLET_PORT, 10);
47
40
 
48
- app.listen(port, (err) => {
41
+ const server = app.listen(port, (err) => {
49
42
  if (err) throw err;
50
43
  logger.info(`> ${name} v${version} ready on ${port}`);
51
44
  });
45
+
46
+ module.exports = {
47
+ app,
48
+ server,
49
+ };
@@ -6,7 +6,6 @@
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
7
7
  <meta name="theme-color" content="#4F6AF5" />
8
8
  <meta name="description" content="Web site created using create-blocklet" />
9
- <title><%- title %></title>
10
9
  </head>
11
10
  <body>
12
11
  <noscript> You need to enable JavaScript to run this app. </noscript>
@@ -6,9 +6,7 @@
6
6
  "eject": "vite eject",
7
7
  "lint": "eslint src api --ext .mjs,.js,.jsx,.ts,.tsx",
8
8
  "lint:fix": "npm run lint -- --fix",
9
- "start": "npm-run-all --parallel start:*",
10
- "start:client": "vite --host",
11
- "start:api": "cross-env NODE_ENV=development nodemon api/index.js -w api",
9
+ "start": "cross-env NODE_ENV=development nodemon api/dev.js -w api",
12
10
  "clean": "node scripts/build-clean.js",
13
11
  "bundle": "npm run bundle:client && npm run bundle:api",
14
12
  "bundle:client": "vite build",
@@ -42,12 +40,12 @@
42
40
  ]
43
41
  },
44
42
  "dependencies": {
45
- "@arcblock/did-auth": "^1.17.23",
43
+ "@arcblock/did-auth": "^1.18.6",
46
44
  "@arcblock/did-auth-storage-nedb": "^1.7.1",
47
- "@blocklet/sdk": "^1.8.30",
48
- "@ocap/client": "^1.17.23",
49
- "@ocap/mcrypto": "^1.17.23",
50
- "@ocap/wallet": "^1.17.23",
45
+ "@blocklet/sdk": "^1.8.33",
46
+ "@ocap/client": "^1.18.6",
47
+ "@ocap/mcrypto": "^1.18.6",
48
+ "@ocap/wallet": "^1.18.6",
51
49
  "axios": "^0.27.2",
52
50
  "compression": "^1.7.4",
53
51
  "cookie-parser": "^1.4.6",
@@ -58,24 +56,23 @@
58
56
  "express-history-api-fallback": "^2.2.1",
59
57
  "react": "^18.2.0",
60
58
  "react-dom": "^18.2.0",
61
- "react-router-dom": "^6.4.2",
59
+ "react-router-dom": "^6.4.3",
62
60
  "rimraf": "^3.0.2"
63
61
  },
64
62
  "devDependencies": {
65
63
  "@arcblock/eslint-config": "^0.2.3",
66
- "@vitejs/plugin-react": "^2.1.0",
64
+ "@vitejs/plugin-react": "^2.2.0",
67
65
  "bumpp": "^8.2.1",
68
66
  "cross-env": "^7.0.3",
69
- "eslint": "^8.25.0",
67
+ "eslint": "^8.26.0",
70
68
  "husky": "^8.0.1",
71
69
  "lint-staged": "^12.5.0",
72
70
  "node-polyfill-webpack-plugin": "^2.0.1",
73
71
  "nodemon": "^2.0.20",
74
72
  "npm-run-all": "^4.1.5",
75
73
  "prettier": "^2.7.1",
76
- "vite": "^3.1.8",
77
- "vite-plugin-blocklet": "^0.4.81",
78
- "vite-plugin-html": "^3.2.0",
74
+ "vite": "^3.2.2",
75
+ "vite-plugin-blocklet": "^0.5.0",
79
76
  "vite-plugin-svgr": "^2.2.2",
80
77
  "zx": "^7.1.1"
81
78
  }
@@ -1,36 +1,11 @@
1
- import { defineConfig, loadEnv } from 'vite';
1
+ import { defineConfig } from 'vite';
2
2
  import react from '@vitejs/plugin-react';
3
- import { createHtmlPlugin } from 'vite-plugin-html';
4
3
  import { createBlockletPlugin } from 'vite-plugin-blocklet';
5
4
  import svgr from 'vite-plugin-svgr';
6
5
 
7
6
  // https://vitejs.dev/config/
8
- export default defineConfig(async ({ mode }) => {
9
- const envMap = loadEnv(mode, process.cwd(), '');
10
- const apiPort = envMap.API_PORT || 3030;
11
- const apiPrefix = `${process.env.BLOCKLET_DEV_MOUNT_POINT || ''}/api`;
12
-
7
+ export default defineConfig(() => {
13
8
  return {
14
- plugins: [
15
- react(),
16
- createHtmlPlugin({
17
- minify: true,
18
- inject: {
19
- data: {
20
- title: envMap.APP_TITLE,
21
- },
22
- },
23
- }),
24
- createBlockletPlugin(),
25
- svgr(),
26
- ],
27
- server: {
28
- proxy: {
29
- [apiPrefix]: {
30
- target: `http://127.0.0.1:${apiPort}`,
31
- rewrite: (path) => path.replace(apiPrefix, '/api'), // rewrite path when blocklet dev
32
- },
33
- },
34
- },
9
+ plugins: [react(), createBlockletPlugin(), svgr()],
35
10
  };
36
11
  });
@@ -0,0 +1,4 @@
1
+ const { setupClient } = require('vite-plugin-blocklet');
2
+ const { server, app } = require('./index');
3
+
4
+ setupClient(app, server);
@@ -1,6 +1,5 @@
1
1
  require('dotenv-flow').config();
2
2
  require('express-async-errors');
3
-
4
3
  const path = require('path');
5
4
  const cors = require('cors');
6
5
  const Gun = require('gun');
@@ -21,34 +20,27 @@ app.use(express.json({ limit: '1 mb' }));
21
20
  app.use(express.urlencoded({ extended: true, limit: '1 mb' }));
22
21
 
23
22
  app.use(Gun.serve);
23
+ app.use(cors());
24
24
 
25
25
  const router = express.Router();
26
26
  router.use('/api', require('./routes'));
27
+ app.use(router);
27
28
 
28
- const isDevelopment = process.env.NODE_ENV === 'development';
29
29
  const isProduction = process.env.NODE_ENV === 'production' || process.env.ABT_NODE_SERVICE_ENV === 'production';
30
30
 
31
31
  if (isProduction) {
32
- app.use(cors());
32
+ const staticDir = path.resolve(__dirname, '../dist');
33
33
  app.use(compression());
34
-
35
- const staticDir = path.resolve(process.env.BLOCKLET_APP_DIR, 'dist');
36
34
  app.use(express.static(staticDir, { maxAge: '30d', index: false }));
37
- app.use(router);
38
35
  app.use(fallback('index.html', { root: staticDir }));
39
36
 
40
- app.use((req, res) => {
41
- res.status(404).send('404 NOT FOUND');
42
- });
43
37
  app.use((err, req, res) => {
44
38
  logger.error(err.stack);
45
39
  res.status(500).send('Something broke!');
46
40
  });
47
- } else {
48
- app.use(router);
49
41
  }
50
42
 
51
- const port = (isDevelopment ? parseInt(process.env.API_PORT, 10) : parseInt(process.env.BLOCKLET_PORT, 10)) || 3030;
43
+ const port = parseInt(process.env.BLOCKLET_PORT, 10);
52
44
 
53
45
  const server = app.listen(port, (err) => {
54
46
  if (err) throw err;
@@ -6,7 +6,6 @@
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
7
7
  <meta name="theme-color" content="#4F6AF5" />
8
8
  <meta name="description" content="Web site created using create-blocklet" />
9
- <title><%- title %></title>
10
9
  </head>
11
10
  <body>
12
11
  <noscript> You need to enable JavaScript to run this app. </noscript>
@@ -6,9 +6,7 @@
6
6
  "eject": "vite eject",
7
7
  "lint": "eslint src api --ext .mjs,.js,.jsx,.ts,.tsx",
8
8
  "lint:fix": "npm run lint -- --fix",
9
- "start": "npm-run-all --parallel start:*",
10
- "start:client": "vite --host",
11
- "start:api": "NODE_ENV=development nodemon api/index.js -w api",
9
+ "start": "cross-env NODE_ENV=development nodemon api/dev.js -w api",
12
10
  "clean": "node scripts/build-clean.js",
13
11
  "bundle": "npm run bundle:client && npm run bundle:api",
14
12
  "bundle:client": "vite build",
@@ -42,12 +40,12 @@
42
40
  ]
43
41
  },
44
42
  "dependencies": {
45
- "@arcblock/did-auth": "^1.17.23",
43
+ "@arcblock/did-auth": "^1.18.6",
46
44
  "@arcblock/did-auth-storage-nedb": "^1.7.1",
47
- "@blocklet/sdk": "^1.8.30",
48
- "@ocap/client": "^1.17.23",
49
- "@ocap/mcrypto": "^1.17.23",
50
- "@ocap/wallet": "^1.17.23",
45
+ "@blocklet/sdk": "^1.8.33",
46
+ "@ocap/client": "^1.18.6",
47
+ "@ocap/mcrypto": "^1.18.6",
48
+ "@ocap/wallet": "^1.18.6",
51
49
  "axios": "^0.27.2",
52
50
  "compression": "^1.7.4",
53
51
  "cookie-parser": "^1.4.6",
@@ -59,23 +57,23 @@
59
57
  "gun": "^0.2020.1238",
60
58
  "react": "^18.2.0",
61
59
  "react-dom": "^18.2.0",
62
- "react-router-dom": "^6.4.2"
60
+ "react-router-dom": "^6.4.3"
63
61
  },
64
62
  "devDependencies": {
65
63
  "@arcblock/eslint-config": "^0.2.3",
66
- "@vitejs/plugin-react": "^2.1.0",
67
- "eslint": "^8.25.0",
64
+ "@vitejs/plugin-react": "^2.2.0",
65
+ "bumpp": "^8.2.1",
66
+ "cross-env": "^7.0.3",
67
+ "eslint": "^8.26.0",
68
68
  "husky": "^8.0.1",
69
69
  "lint-staged": "^12.5.0",
70
70
  "nodemon": "^2.0.20",
71
71
  "npm-run-all": "^4.1.5",
72
72
  "prettier": "^2.7.1",
73
- "vite": "^3.1.8",
74
- "vite-plugin-blocklet": "^0.4.81",
75
- "vite-plugin-html": "^3.2.0",
76
- "vite-plugin-svgr": "^2.2.2",
77
- "zx": "^7.1.1",
78
73
  "rimraf": "^3.0.2",
79
- "bumpp": "^8.2.1"
74
+ "vite": "^3.2.2",
75
+ "vite-plugin-blocklet": "^0.5.0",
76
+ "vite-plugin-svgr": "^2.2.2",
77
+ "zx": "^7.1.1"
80
78
  }
81
79
  }