create-blocklet 0.2.18 → 0.3.2

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 (107) hide show
  1. package/common/.github/workflows/main.yml +5 -5
  2. package/common/.husky/pre-commit +4 -0
  3. package/common/_eslintignore +10 -0
  4. package/common/_eslintrc.js +1 -0
  5. package/common/_gitignore +15 -9
  6. package/common/logo.png +0 -0
  7. package/common/public/favicon.ico +0 -0
  8. package/index.js +200 -77
  9. package/lib/arcblock.js +11 -7
  10. package/lib/git.js +25 -0
  11. package/lib/index.js +17 -5
  12. package/lib/npm.js +7 -9
  13. package/lib/server.js +26 -20
  14. package/package.json +18 -16
  15. package/template-api/express/README.md +146 -0
  16. package/{template-dapp/react/server → template-api/express/api}/hooks/pre-start.js +0 -0
  17. package/template-api/express/api/index.js +13 -0
  18. package/{template-dapp/react/server → template-api/express/api}/libs/auth.js +0 -0
  19. package/{template-dapp/react/server → template-api/express/api}/libs/env.js +0 -0
  20. package/{template-dapp/react/server → template-api/express/api}/libs/logger.js +0 -0
  21. package/template-api/express/blocklet.md +3 -0
  22. package/template-api/express/blocklet.yml +57 -0
  23. package/template-api/express/package.json +26 -0
  24. package/template-api/express/screenshots/.gitkeep +0 -0
  25. package/template-dapp/nextjs/.eslintrc.js +4 -0
  26. package/template-dapp/nextjs/README.md +153 -0
  27. package/template-dapp/{vue/server → nextjs/api}/hooks/pre-start.js +0 -0
  28. package/template-dapp/nextjs/api/index.js +24 -0
  29. package/template-dapp/{vue/server → nextjs/api}/libs/auth.js +0 -0
  30. package/template-dapp/{vue/server → nextjs/api}/libs/env.js +0 -0
  31. package/template-dapp/{vue/server → nextjs/api}/libs/logger.js +0 -0
  32. package/template-dapp/{vue2/server → nextjs/api}/routes/index.js +1 -1
  33. package/template-dapp/nextjs/blocklet.md +3 -0
  34. package/template-dapp/nextjs/blocklet.yml +58 -0
  35. package/template-dapp/nextjs/next.config.js +6 -0
  36. package/template-dapp/nextjs/package.json +48 -0
  37. package/template-dapp/nextjs/pages/_app.js +21 -0
  38. package/template-dapp/nextjs/pages/api/hello.js +5 -0
  39. package/template-dapp/nextjs/pages/index.js +69 -0
  40. package/template-dapp/nextjs/styles/Home.module.css +116 -0
  41. package/template-dapp/nextjs/styles/globals.css +16 -0
  42. package/template-dapp/react/README.md +5 -5
  43. package/template-dapp/{vue2/server → react/api}/hooks/pre-start.js +0 -0
  44. package/template-dapp/react/{server → api}/index.js +0 -0
  45. package/template-dapp/{vue2/server → react/api}/libs/auth.js +0 -0
  46. package/template-dapp/{vue2/server → react/api}/libs/env.js +0 -0
  47. package/template-dapp/{vue2/server → react/api}/libs/logger.js +0 -0
  48. package/template-dapp/react/{server → api}/routes/index.js +1 -1
  49. package/template-dapp/react/blocklet.yml +6 -6
  50. package/template-dapp/react/package.json +35 -23
  51. package/template-dapp/react/public/index.html +1 -3
  52. package/template-dapp/react/src/app.js +8 -8
  53. package/template-dapp/vue/.browserslistrc +4 -0
  54. package/template-dapp/vue/.eslintrc.js +25 -0
  55. package/template-dapp/vue/api/hooks/pre-start.js +33 -0
  56. package/template-dapp/vue/{server → api}/index.js +0 -0
  57. package/template-dapp/vue/api/libs/auth.js +22 -0
  58. package/template-dapp/vue/api/libs/env.js +6 -0
  59. package/template-dapp/vue/api/libs/logger.js +3 -0
  60. package/template-dapp/vue/{server → api}/routes/index.js +1 -1
  61. package/template-dapp/vue/blocklet.yml +6 -5
  62. package/template-dapp/vue/index.html +2 -3
  63. package/template-dapp/vue/package.json +39 -21
  64. package/template-dapp/vue/src/App.vue +4 -2
  65. package/template-dapp/vue/vite.config.js +10 -6
  66. package/template-dapp/vue2/.browserslistrc +4 -0
  67. package/template-dapp/vue2/.eslintrc.js +14 -0
  68. package/template-dapp/vue2/api/hooks/pre-start.js +33 -0
  69. package/template-dapp/vue2/{server → api}/index.js +0 -0
  70. package/template-dapp/vue2/api/libs/auth.js +22 -0
  71. package/template-dapp/vue2/api/libs/env.js +6 -0
  72. package/template-dapp/vue2/api/libs/logger.js +3 -0
  73. package/template-dapp/vue2/api/routes/index.js +6 -0
  74. package/template-dapp/vue2/blocklet.yml +7 -5
  75. package/template-dapp/vue2/jsconfig.json +19 -0
  76. package/template-dapp/vue2/package.json +38 -43
  77. package/template-dapp/vue2/public/index.html +2 -9
  78. package/template-dapp/vue2/src/App.vue +17 -1
  79. package/template-dapp/vue2/src/main.js +0 -2
  80. package/template-dapp/vue2/vue.config.js +0 -1
  81. package/template-static/blocklet-page/package.json +5 -5
  82. package/template-static/react/blocklet.yml +2 -2
  83. package/template-static/react/package.json +21 -9
  84. package/template-static/react/public/index.html +1 -3
  85. package/template-static/react/src/app.js +8 -8
  86. package/template-static/vue/.browserslistrc +4 -0
  87. package/template-static/vue/.eslintrc.js +25 -0
  88. package/template-static/vue/blocklet.yml +2 -2
  89. package/template-static/vue/index.html +2 -3
  90. package/template-static/vue/package.json +26 -8
  91. package/template-static/vue/vite.config.js +10 -6
  92. package/template-static/vue2/.browserslistrc +4 -0
  93. package/template-static/vue2/.eslintrc.js +14 -0
  94. package/template-static/vue2/blocklet.yml +2 -2
  95. package/template-static/vue2/jsconfig.json +19 -0
  96. package/template-static/vue2/package.json +25 -30
  97. package/template-static/vue2/public/index.html +2 -9
  98. package/template-static/vue2/src/App.vue +7 -1
  99. package/template-static/vue2/src/main.js +0 -2
  100. package/template-static/vue2/vue.config.js +0 -3
  101. package/common/public/favicon.svg +0 -1
  102. package/template-dapp/vue2/src/pages/About.vue +0 -13
  103. package/template-dapp/vue2/src/pages/Home.vue +0 -27
  104. package/template-dapp/vue2/src/router.js +0 -24
  105. package/template-static/vue2/src/pages/About.vue +0 -13
  106. package/template-static/vue2/src/pages/Home.vue +0 -20
  107. package/template-static/vue2/src/router.js +0 -24
@@ -8,8 +8,8 @@ group: static
8
8
  did: ''
9
9
  main: dist
10
10
  author:
11
- name: zhanghan
12
- email: zhanghan@arcblock.io
11
+ name: Blocklet
12
+ email: blocklet@arcblock.io
13
13
  repository:
14
14
  type: git
15
15
  url: 'git+https://github.com/blocklet/create-blocklet.git'
@@ -2,9 +2,7 @@
2
2
  <html lang="en">
3
3
  <head>
4
4
  <meta charset="UTF-8" />
5
- <link rel="icon" type="image/svg+xml" href="<%- base %>favicon.svg" />
6
- <link rel="alternate icon" href="<%- base %>favicon.ico" />
7
- <link rel="mask-icon" href="<%- base %>favicon.svg" color="#4F6AF5" />
5
+ <link rel="icon" href="<%- base %>favicon.ico" />
8
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
9
7
  <meta name="theme-color" content="#4F6AF5" />
10
8
  <meta name="description" content="Web site created using create-blocklet" />
@@ -12,6 +10,7 @@
12
10
  <script src="__meta__.js"></script>
13
11
  </head>
14
12
  <body>
13
+ <noscript>You need to enable JavaScript to run this app.</noscript>
15
14
  <div id="app"></div>
16
15
  <script type="module" src="/src/main.js"></script>
17
16
  </body>
@@ -2,22 +2,40 @@
2
2
  "name": "template-vue",
3
3
  "version": "0.1.0",
4
4
  "scripts": {
5
- "dev": "vite",
6
- "start": "vite --host",
5
+ "dev": "vite --host",
6
+ "start": "npm run dev",
7
7
  "build": "vite build",
8
+ "lint": "eslint src --ext .mjs,.js,.vue",
8
9
  "serve": "vite preview",
9
10
  "clean": "rm -rf .blocklet",
10
11
  "bundle": "npm run clean && vite build --base /.blocklet/proxy/<%= did %> && blocklet bundle --zip --create-release",
11
12
  "deploy": "npm run bundle && blocklet deploy .blocklet/bundle",
12
- "upload": "npm run bundle && blocklet upload .blocklet/release/blocklet.json"
13
+ "upload": "npm run bundle && blocklet upload .blocklet/release/blocklet.json",
14
+ "prepare": "husky install"
13
15
  },
14
16
  "dependencies": {
15
- "vite-plugin-html": "^2.1.1",
16
- "vue": "^3.2.16"
17
+ "vite-plugin-html": "^3.2.0",
18
+ "vue": "^3.2.31"
17
19
  },
18
20
  "devDependencies": {
19
- "@vitejs/plugin-vue": "^1.9.3",
20
- "vite": "^2.6.4",
21
- "prettier": "^2.3.2"
21
+ "@vitejs/plugin-vue": "^2.2.4",
22
+ "eslint": "^7.32.0",
23
+ "eslint-config-prettier": "^8.5.0",
24
+ "eslint-plugin-prettier": "^4.0.0",
25
+ "eslint-plugin-vue": "^8.5.0",
26
+ "husky": "^7.0.4",
27
+ "lint-staged": "^12.3.7",
28
+ "prettier": "^2.6.0",
29
+ "vite": "^2.8.6",
30
+ "vite-plugin-blocklet": "^0.1.1"
31
+ },
32
+ "lint-staged": {
33
+ "*.{mjs,js,vue}": [
34
+ "prettier --write",
35
+ "eslint --ext .js,.vue,.mjs"
36
+ ],
37
+ "*.{css,less,scss,json,graphql}": [
38
+ "prettier --write"
39
+ ]
22
40
  }
23
41
  }
@@ -1,6 +1,7 @@
1
1
  import { defineConfig, loadEnv } from 'vite';
2
2
  import vue from '@vitejs/plugin-vue';
3
- import { minifyHtml, injectHtml } from 'vite-plugin-html';
3
+ import { createHtmlPlugin } from 'vite-plugin-html';
4
+ import { createBlockletPlugin } from 'vite-plugin-blocklet';
4
5
 
5
6
  // https://vitejs.dev/config/
6
7
  export default ({ mode }) => {
@@ -8,13 +9,16 @@ export default ({ mode }) => {
8
9
  return defineConfig({
9
10
  plugins: [
10
11
  vue(),
11
- minifyHtml(),
12
- injectHtml({
13
- data: {
14
- base: process.env.BASE_URL || '/',
15
- title: envMap.VITE_APP_TITLE,
12
+ createHtmlPlugin({
13
+ minify: true,
14
+ inject: {
15
+ data: {
16
+ base: process.env.BASE_URL || '/',
17
+ title: envMap.VITE_APP_TITLE,
18
+ },
16
19
  },
17
20
  }),
21
+ createBlockletPlugin(),
18
22
  ],
19
23
  server: {
20
24
  port: process.env.BLOCKLET_PORT,
@@ -0,0 +1,4 @@
1
+ > 1%
2
+ last 2 versions
3
+ not dead
4
+ not ie 11
@@ -0,0 +1,14 @@
1
+ module.exports = {
2
+ root: true,
3
+ env: {
4
+ node: true,
5
+ },
6
+ extends: ['plugin:vue/essential', 'eslint:recommended', 'plugin:prettier/recommended'],
7
+ parserOptions: {
8
+ parser: '@babel/eslint-parser',
9
+ },
10
+ rules: {
11
+ 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
12
+ 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
13
+ },
14
+ };
@@ -8,8 +8,8 @@ group: static
8
8
  did: ''
9
9
  main: dist
10
10
  author:
11
- name: zhanghan
12
- email: zhanghan@arcblock.io
11
+ name: Blocklet
12
+ email: blocklet@arcblock.io
13
13
  repository:
14
14
  type: git
15
15
  url: 'git+https://github.com/blocklet/create-blocklet.git'
@@ -0,0 +1,19 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "es5",
4
+ "module": "esnext",
5
+ "baseUrl": "./",
6
+ "moduleResolution": "node",
7
+ "paths": {
8
+ "@/*": [
9
+ "src/*"
10
+ ]
11
+ },
12
+ "lib": [
13
+ "esnext",
14
+ "dom",
15
+ "dom.iterable",
16
+ "scripthost"
17
+ ]
18
+ }
19
+ }
@@ -5,44 +5,39 @@
5
5
  "scripts": {
6
6
  "serve": "vue-cli-service serve",
7
7
  "build": "vue-cli-service build",
8
- "lint": "vue-cli-service lint",
8
+ "lint": "eslint src --ext .mjs,.js,.vue",
9
9
  "start": "npm run serve",
10
10
  "clean": "rm -rf .blocklet",
11
11
  "bundle": "npm run clean && PUBLIC_PATH=/.blocklet/proxy/<%= did %> npm run build && blocklet bundle --zip --create-release",
12
12
  "deploy": "npm run bundle && blocklet deploy .blocklet/bundle",
13
- "upload": "npm run bundle && blocklet upload .blocklet/release/blocklet.json"
13
+ "upload": "npm run bundle && blocklet upload .blocklet/release/blocklet.json",
14
+ "prepare": "husky install"
14
15
  },
15
16
  "dependencies": {
16
- "core-js": "^3.6.5",
17
- "vue": "^2.6.11",
18
- "vue-router": "^3.5.3"
17
+ "core-js": "^3.21.1",
18
+ "vue": "^2.6.14"
19
19
  },
20
20
  "devDependencies": {
21
- "@vue/cli-plugin-babel": "~4.5.0",
22
- "@vue/cli-plugin-eslint": "~4.5.0",
23
- "@vue/cli-service": "~4.5.0",
24
- "babel-eslint": "^10.1.0",
25
- "eslint": "^6.7.2",
26
- "eslint-plugin-vue": "^6.2.2",
27
- "vue-template-compiler": "^2.6.11"
21
+ "@babel/core": "^7.17.8",
22
+ "@babel/eslint-parser": "^7.17.0",
23
+ "@vue/cli-plugin-babel": "~5.0.3",
24
+ "@vue/cli-plugin-eslint": "~5.0.3",
25
+ "@vue/cli-service": "~5.0.3",
26
+ "eslint": "^7.32.0",
27
+ "eslint-config-prettier": "^8.5.0",
28
+ "eslint-plugin-prettier": "^4.0.0",
29
+ "eslint-plugin-vue": "^8.5.0",
30
+ "husky": "^7.0.4",
31
+ "lint-staged": "^12.3.7",
32
+ "vue-template-compiler": "^2.6.14"
28
33
  },
29
- "eslintConfig": {
30
- "root": true,
31
- "env": {
32
- "node": true
33
- },
34
- "extends": [
35
- "plugin:vue/essential",
36
- "eslint:recommended"
34
+ "lint-staged": {
35
+ "*.{mjs,js,vue}": [
36
+ "prettier --write",
37
+ "eslint --ext .js,.vue,.mjs"
37
38
  ],
38
- "parserOptions": {
39
- "parser": "babel-eslint"
40
- },
41
- "rules": {}
42
- },
43
- "browserslist": [
44
- "> 1%",
45
- "last 2 versions",
46
- "not dead"
47
- ]
39
+ "*.{css,less,scss,json,graphql}": [
40
+ "prettier --write"
41
+ ]
42
+ }
48
43
  }
@@ -2,9 +2,7 @@
2
2
  <html lang="">
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
- <link rel="icon" type="image/svg+xml" href="<%= BASE_URL %>favicon.svg" />
6
- <link rel="alternate icon" href="<%= BASE_URL %>favicon.ico" />
7
- <link rel="mask-icon" href="<%= BASE_URL %>favicon.svg" color="#4F6AF5" />
5
+ <link rel="icon" href="<%= BASE_URL %>favicon.ico" />
8
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
9
7
  <meta name="theme-color" content="#4F6AF5" />
10
8
  <meta name="description" content="Web site created using create-blocklet" />
@@ -12,12 +10,7 @@
12
10
  <script src="__meta__.js"></script>
13
11
  </head>
14
12
  <body>
15
- <noscript>
16
- <strong
17
- >We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please
18
- enable it to continue.</strong
19
- >
20
- </noscript>
13
+ <noscript>You need to enable JavaScript to run this app.</noscript>
21
14
  <div id="app"></div>
22
15
  <!-- built files will be auto injected -->
23
16
  </body>
@@ -1,12 +1,18 @@
1
1
  <template>
2
2
  <div id="app">
3
- <router-view />
3
+ <img alt="Vue logo" src="./assets/logo.png" />
4
+ <HelloWorld msg="Welcome to Your Vue.js App" />
4
5
  </div>
5
6
  </template>
6
7
 
7
8
  <script>
9
+ import HelloWorld from './components/HelloWorld.vue';
10
+
8
11
  export default {
9
12
  name: 'App',
13
+ components: {
14
+ HelloWorld,
15
+ },
10
16
  };
11
17
  </script>
12
18
 
@@ -1,10 +1,8 @@
1
1
  import Vue from 'vue';
2
2
  import App from './App.vue';
3
- import router from './router';
4
3
 
5
4
  Vue.config.productionTip = false;
6
5
 
7
6
  new Vue({
8
- router,
9
7
  render: (h) => h(App),
10
8
  }).$mount('#app');
@@ -1,6 +1,3 @@
1
1
  module.exports = {
2
2
  publicPath: process.env.PUBLIC_PATH || '/',
3
- devServer: {
4
- disableHostCheck: true,
5
- },
6
3
  };
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="450" height="520" viewBox="0 0 45 52"><g fill="none" fill-rule="evenodd" stroke="#4F6AF5"><path d="M.5 13.077L22.15.577l21.651 12.5v25l-21.65 12.5L.5 38.077zM22.15.577v50M.5 13.077l43.301 25m-43.301 0l43.301-25"></path><path d="M22.15 38.077l10.826-6.25-10.825-18.75-10.825 18.75z"></path></g></svg>
@@ -1,13 +0,0 @@
1
- <template>
2
- <div>
3
- <h1>About</h1>
4
- <p>This is the about page</p>
5
- <router-link to="/">Back home</router-link>
6
- </div>
7
- </template>
8
-
9
- <script>
10
- export default {};
11
- </script>
12
-
13
- <style></style>
@@ -1,27 +0,0 @@
1
- <template>
2
- <div>
3
- <img alt="Vue logo" src="../assets/logo.png" />
4
- <div>
5
- <router-link to="/about">About page</router-link>
6
- </div>
7
- <HelloWorld msg="Welcome to Your Vue.js App" />
8
- <div :style="{ display: 'flex', justifyContent: 'center' }">
9
- <pre :style="{ textAlign: 'left' }">
10
- <code>{{ JSON.stringify(window.blocklet, null, 2) }}</code>
11
- </pre>
12
- </div>
13
- </div>
14
- </template>
15
-
16
- <script>
17
- import HelloWorld from '../components/HelloWorld.vue';
18
- import api from '../libs/api';
19
-
20
- export default {
21
- components: {
22
- HelloWorld,
23
- },
24
- };
25
- </script>
26
-
27
- <style></style>
@@ -1,24 +0,0 @@
1
- import Vue from 'vue';
2
- import VueRouter from 'vue-router';
3
-
4
- import Home from './pages/Home';
5
- import About from './pages/About';
6
-
7
- Vue.use(VueRouter);
8
- const basename = window?.blocklet?.prefix || '/';
9
-
10
- export default new VueRouter({
11
- base: basename,
12
- routes: [
13
- {
14
- path: '/',
15
- name: 'home',
16
- component: Home,
17
- },
18
- {
19
- path: '/about',
20
- name: 'about',
21
- component: About,
22
- },
23
- ],
24
- });
@@ -1,13 +0,0 @@
1
- <template>
2
- <div>
3
- <h1>About</h1>
4
- <p>This is the about page</p>
5
- <router-link to="/">Back home</router-link>
6
- </div>
7
- </template>
8
-
9
- <script>
10
- export default {};
11
- </script>
12
-
13
- <style></style>
@@ -1,20 +0,0 @@
1
- <template>
2
- <div>
3
- <img alt="Vue logo" src="../assets/logo.png" />
4
- <div>
5
- <router-link to="/about">About page</router-link>
6
- </div>
7
- <HelloWorld msg="Welcome to Your Vue.js App" />
8
- </div>
9
- </template>
10
-
11
- <script>
12
- import HelloWorld from '../components/HelloWorld.vue';
13
- export default {
14
- components: {
15
- HelloWorld,
16
- },
17
- };
18
- </script>
19
-
20
- <style></style>
@@ -1,24 +0,0 @@
1
- import Vue from 'vue';
2
- import VueRouter from 'vue-router';
3
-
4
- import Home from './pages/Home';
5
- import About from './pages/About';
6
-
7
- Vue.use(VueRouter);
8
- const basename = window?.blocklet?.prefix || '/';
9
-
10
- export default new VueRouter({
11
- base: basename,
12
- routes: [
13
- {
14
- path: '/',
15
- name: 'home',
16
- component: Home,
17
- },
18
- {
19
- path: '/about',
20
- name: 'about',
21
- component: About,
22
- },
23
- ],
24
- });