create-vue 3.0.0-beta.1 → 3.0.0-beta.10

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 (40) hide show
  1. package/outfile.cjs +5712 -0
  2. package/package.json +15 -15
  3. package/template/base/package.json +4 -6
  4. package/template/base/vite.config.js +3 -1
  5. package/template/code/default/src/App.vue +2 -2
  6. package/template/code/default/src/components/{Welcome.vue → TheWelcome.vue} +0 -0
  7. package/template/code/router/src/App.vue +8 -8
  8. package/template/code/router/src/components/{Welcome.vue → TheWelcome.vue} +0 -0
  9. package/template/code/router/src/router/index.js +16 -18
  10. package/template/code/router/src/views/{About.vue → AboutView.vue} +0 -0
  11. package/template/code/router/src/views/{Home.vue → HomeView.vue} +2 -2
  12. package/template/code/typescript-default/src/App.vue +2 -2
  13. package/template/code/typescript-default/src/components/HelloWorld.vue +1 -1
  14. package/template/code/typescript-default/src/components/{Welcome.vue → TheWelcome.vue} +0 -0
  15. package/template/code/typescript-router/src/App.vue +8 -8
  16. package/template/code/typescript-router/src/components/HelloWorld.vue +1 -1
  17. package/template/code/typescript-router/src/components/{Welcome.vue → TheWelcome.vue} +0 -0
  18. package/template/code/typescript-router/src/router/index.ts +16 -20
  19. package/template/code/typescript-router/src/views/{About.vue → AboutView.vue} +0 -0
  20. package/template/code/typescript-router/src/views/{Home.vue → HomeView.vue} +2 -2
  21. package/template/config/cypress/package.json +6 -6
  22. package/template/config/jsx/package.json +1 -1
  23. package/template/config/jsx/vite.config.js +3 -1
  24. package/template/config/pinia/package.json +5 -0
  25. package/template/config/pinia/src/stores/counter.js +16 -0
  26. package/template/config/router/package.json +1 -1
  27. package/template/config/typescript/package.json +3 -2
  28. package/template/config/typescript/tsconfig.json +1 -0
  29. package/template/entry/{vuex → pinia}/src/main.js +2 -2
  30. package/template/entry/{vuex-and-router → router-and-pinia}/src/main.js +3 -3
  31. package/index.js +0 -312
  32. package/template/code/typescript-router/src/main.ts +0 -9
  33. package/template/config/cypress/cypress/.DS_Store +0 -0
  34. package/utils/deepMerge.js +0 -26
  35. package/utils/directoryTraverse.js +0 -29
  36. package/utils/docs/README-TEMPLATE.md +0 -17
  37. package/utils/docs/SFC-TYPE-SUPPORT.md +0 -5
  38. package/utils/generateReadme.js +0 -71
  39. package/utils/getCommand.js +0 -7
  40. package/utils/renderTemplate.js +0 -44
package/package.json CHANGED
@@ -1,26 +1,26 @@
1
1
  {
2
2
  "name": "create-vue",
3
- "version": "3.0.0-beta.1",
3
+ "version": "3.0.0-beta.10",
4
4
  "description": "An easy way to start a Vue project",
5
5
  "type": "module",
6
- "main": "index.js",
7
6
  "bin": {
8
- "create-vue": "index.js"
7
+ "create-vue": "outfile.cjs"
9
8
  },
10
9
  "files": [
11
- "index.js",
12
- "utils",
10
+ "outfile.cjs",
13
11
  "template"
14
12
  ],
15
13
  "engines": {
16
- "node": "^12.13.0 || ^14.0.0 || >= 16.0.0"
14
+ "node": "^14.13.1 || >=16.0.0"
17
15
  },
18
16
  "scripts": {
19
17
  "prepare": "husky install",
20
18
  "format": "prettier --write .",
21
- "pretest": "node snapshot.js",
19
+ "build": "esbuild --bundle index.js --format=cjs --platform=node --outfile=outfile.cjs",
20
+ "snapshot": "node snapshot.js",
21
+ "pretest": "run-s build snapshot",
22
22
  "test": "node test.js",
23
- "prepublishOnly": "node snapshot.js"
23
+ "prepublishOnly": "run-s build snapshot"
24
24
  },
25
25
  "repository": {
26
26
  "type": "git",
@@ -33,15 +33,15 @@
33
33
  "url": "https://github.com/vuejs/create-vue/issues"
34
34
  },
35
35
  "homepage": "https://github.com/vuejs/create-vue#readme",
36
- "dependencies": {
36
+ "devDependencies": {
37
+ "esbuild": "^0.13.15",
38
+ "husky": "^7.0.4",
37
39
  "kolorist": "^1.5.0",
40
+ "lint-staged": "^12.1.2",
38
41
  "minimist": "^1.2.5",
39
- "prompts": "^2.4.1"
40
- },
41
- "devDependencies": {
42
- "husky": "^7.0.1",
43
- "lint-staged": "^11.1.2",
44
- "prettier": "^2.3.2"
42
+ "npm-run-all": "^4.1.5",
43
+ "prettier": "^2.4.1",
44
+ "prompts": "^2.4.2"
45
45
  },
46
46
  "lint-staged": {
47
47
  "*.{js,ts,vue,json}": [
@@ -2,15 +2,13 @@
2
2
  "scripts": {
3
3
  "dev": "vite",
4
4
  "build": "vite build",
5
- "preserve": "vite build",
6
- "serve": "vite preview --port 5050"
5
+ "preview": "vite preview --port 5050"
7
6
  },
8
7
  "dependencies": {
9
- "vue": "^3.2.2"
8
+ "vue": "^3.2.22"
10
9
  },
11
10
  "devDependencies": {
12
- "@vitejs/plugin-vue": "^1.4.0",
13
- "@vue/compiler-sfc": "^3.2.2",
14
- "vite": "^2.5.0"
11
+ "@vitejs/plugin-vue": "^1.10.0",
12
+ "vite": "^2.6.14"
15
13
  }
16
14
  }
@@ -1,3 +1,5 @@
1
+ import { fileURLToPath } from 'url'
2
+
1
3
  import { defineConfig } from 'vite'
2
4
  import vue from '@vitejs/plugin-vue'
3
5
 
@@ -6,7 +8,7 @@ export default defineConfig({
6
8
  plugins: [vue()],
7
9
  resolve: {
8
10
  alias: {
9
- '@/': new URL('./src/', import.meta.url).pathname
11
+ '@': fileURLToPath(new URL('./src', import.meta.url))
10
12
  }
11
13
  }
12
14
  })
@@ -1,6 +1,6 @@
1
1
  <script setup>
2
2
  import HelloWorld from './components/HelloWorld.vue'
3
- import Welcome from './components/Welcome.vue'
3
+ import TheWelcome from './components/TheWelcome.vue'
4
4
  </script>
5
5
 
6
6
  <template>
@@ -13,7 +13,7 @@ import Welcome from './components/Welcome.vue'
13
13
  </header>
14
14
 
15
15
  <main>
16
- <Welcome />
16
+ <TheWelcome />
17
17
  </main>
18
18
  </template>
19
19
 
@@ -9,10 +9,10 @@ import HelloWorld from '@/components/HelloWorld.vue'
9
9
  <div class="wrapper">
10
10
  <HelloWorld msg="You did it!" />
11
11
 
12
- <div id="nav">
12
+ <nav>
13
13
  <router-link to="/">Home</router-link>
14
14
  <router-link to="/about">About</router-link>
15
- </div>
15
+ </nav>
16
16
  </div>
17
17
  </header>
18
18
 
@@ -53,28 +53,28 @@ a,
53
53
  }
54
54
  }
55
55
 
56
- #nav {
56
+ nav {
57
57
  width: 100%;
58
58
  font-size: 12px;
59
59
  text-align: center;
60
60
  margin-top: 2rem;
61
61
  }
62
62
 
63
- #nav a.router-link-exact-active {
63
+ nav a.router-link-exact-active {
64
64
  color: var(--color-text);
65
65
  }
66
66
 
67
- #nav a.router-link-exact-active:hover {
67
+ nav a.router-link-exact-active:hover {
68
68
  background-color: transparent;
69
69
  }
70
70
 
71
- #nav a {
71
+ nav a {
72
72
  display: inline-block;
73
73
  padding: 0 1rem;
74
74
  border-left: 1px solid var(--color-border);
75
75
  }
76
76
 
77
- #nav a:first-of-type {
77
+ nav a:first-of-type {
78
78
  border: 0;
79
79
  }
80
80
 
@@ -106,7 +106,7 @@ a,
106
106
  margin: 0 2rem 0 0;
107
107
  }
108
108
 
109
- #nav {
109
+ nav {
110
110
  text-align: left;
111
111
  margin-left: -1rem;
112
112
  font-size: 1rem;
@@ -1,25 +1,23 @@
1
1
  import { createRouter, createWebHistory } from 'vue-router'
2
- import Home from '../views/Home.vue'
3
-
4
- const routes = [
5
- {
6
- path: '/',
7
- name: 'Home',
8
- component: Home
9
- },
10
- {
11
- path: '/about',
12
- name: 'About',
13
- // route level code-splitting
14
- // this generates a separate chunk (About.[hash].js) for this route
15
- // which is lazy-loaded when the route is visited.
16
- component: () => import('../views/About.vue')
17
- }
18
- ]
2
+ import HomeView from '../views/HomeView.vue'
19
3
 
20
4
  const router = createRouter({
21
5
  history: createWebHistory(import.meta.env.BASE_URL),
22
- routes
6
+ routes: [
7
+ {
8
+ path: '/',
9
+ name: 'home',
10
+ component: HomeView
11
+ },
12
+ {
13
+ path: '/about',
14
+ name: 'about',
15
+ // route level code-splitting
16
+ // this generates a separate chunk (About.[hash].js) for this route
17
+ // which is lazy-loaded when the route is visited.
18
+ component: () => import('../views/AboutView.vue')
19
+ }
20
+ ]
23
21
  })
24
22
 
25
23
  export default router
@@ -1,9 +1,9 @@
1
1
  <script setup lang="ts">
2
- import Welcome from '@/components/Welcome.vue'
2
+ import TheWelcome from '@/components/TheWelcome.vue'
3
3
  </script>
4
4
 
5
5
  <template>
6
6
  <main>
7
- <Welcome />
7
+ <TheWelcome />
8
8
  </main>
9
9
  </template>
@@ -1,6 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import HelloWorld from './components/HelloWorld.vue'
3
- import Welcome from './components/Welcome.vue'
3
+ import TheWelcome from './components/TheWelcome.vue'
4
4
  </script>
5
5
 
6
6
  <template>
@@ -13,7 +13,7 @@ import Welcome from './components/Welcome.vue'
13
13
  </header>
14
14
 
15
15
  <main>
16
- <Welcome />
16
+ <TheWelcome />
17
17
  </main>
18
18
  </template>
19
19
 
@@ -1,6 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  defineProps<{
3
- msg: String
3
+ msg: string
4
4
  }>()
5
5
  </script>
6
6
 
@@ -9,10 +9,10 @@ import HelloWorld from '@/components/HelloWorld.vue'
9
9
  <div class="wrapper">
10
10
  <HelloWorld msg="You did it!" />
11
11
 
12
- <div id="nav">
12
+ <nav>
13
13
  <router-link to="/">Home</router-link>
14
14
  <router-link to="/about">About</router-link>
15
- </div>
15
+ </nav>
16
16
  </div>
17
17
  </header>
18
18
 
@@ -53,28 +53,28 @@ a,
53
53
  }
54
54
  }
55
55
 
56
- #nav {
56
+ nav {
57
57
  width: 100%;
58
58
  font-size: 12px;
59
59
  text-align: center;
60
60
  margin-top: 2rem;
61
61
  }
62
62
 
63
- #nav a.router-link-exact-active {
63
+ nav a.router-link-exact-active {
64
64
  color: var(--color-text);
65
65
  }
66
66
 
67
- #nav a.router-link-exact-active:hover {
67
+ nav a.router-link-exact-active:hover {
68
68
  background-color: transparent;
69
69
  }
70
70
 
71
- #nav a {
71
+ nav a {
72
72
  display: inline-block;
73
73
  padding: 0 1rem;
74
74
  border-left: 1px solid var(--color-border);
75
75
  }
76
76
 
77
- #nav a:first-of-type {
77
+ nav a:first-of-type {
78
78
  border: 0;
79
79
  }
80
80
 
@@ -106,7 +106,7 @@ a,
106
106
  margin: 0 2rem 0 0;
107
107
  }
108
108
 
109
- #nav {
109
+ nav {
110
110
  text-align: left;
111
111
  margin-left: -1rem;
112
112
  font-size: 1rem;
@@ -1,6 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  defineProps<{
3
- msg: String
3
+ msg: string
4
4
  }>()
5
5
  </script>
6
6
 
@@ -1,27 +1,23 @@
1
1
  import { createRouter, createWebHistory } from 'vue-router'
2
- import type { RouteRecordRaw } from 'vue-router'
3
-
4
- import Home from '../views/Home.vue'
5
-
6
- const routes: Array<RouteRecordRaw> = [
7
- {
8
- path: '/',
9
- name: 'Home',
10
- component: Home
11
- },
12
- {
13
- path: '/about',
14
- name: 'About',
15
- // route level code-splitting
16
- // this generates a separate chunk (About.[hash].js) for this route
17
- // which is lazy-loaded when the route is visited.
18
- component: () => import('../views/About.vue')
19
- }
20
- ]
2
+ import HomeView from '../views/HomeView.vue'
21
3
 
22
4
  const router = createRouter({
23
5
  history: createWebHistory(import.meta.env.BASE_URL),
24
- routes
6
+ routes: [
7
+ {
8
+ path: '/',
9
+ name: 'home',
10
+ component: HomeView
11
+ },
12
+ {
13
+ path: '/about',
14
+ name: 'about',
15
+ // route level code-splitting
16
+ // this generates a separate chunk (About.[hash].js) for this route
17
+ // which is lazy-loaded when the route is visited.
18
+ component: () => import('../views/AboutView.vue')
19
+ }
20
+ ]
25
21
  })
26
22
 
27
23
  export default router
@@ -1,9 +1,9 @@
1
1
  <script setup lang="ts">
2
- import Welcome from '@/components/Welcome.vue'
2
+ import TheWelcome from '@/components/TheWelcome.vue'
3
3
  </script>
4
4
 
5
5
  <template>
6
6
  <main>
7
- <Welcome />
7
+ <TheWelcome />
8
8
  </main>
9
9
  </template>
@@ -2,13 +2,13 @@
2
2
  "scripts": {
3
3
  "test:unit": "cypress open-ct",
4
4
  "test:unit:ci": "cypress run-ct --quiet --reporter spec",
5
- "test:e2e": "start-server-and-test serve 5050 'cypress open'",
6
- "test:e2e:ci": "start-server-and-test serve 5050 'cypress run'"
5
+ "test:e2e": "start-server-and-test preview http://127.0.0.1:5050/ 'cypress open'",
6
+ "test:e2e:ci": "start-server-and-test preview http://127.0.0.1:5050/ 'cypress run'"
7
7
  },
8
8
  "devDependencies": {
9
- "@cypress/vite-dev-server": "^2.0.7",
10
- "@cypress/vue": "^3.0.3",
11
- "cypress": "^8.2.0",
12
- "start-server-and-test": "^1.13.1"
9
+ "@cypress/vite-dev-server": "^2.2.1",
10
+ "@cypress/vue": "^3.0.5",
11
+ "cypress": "^9.1.0",
12
+ "start-server-and-test": "^1.14.0"
13
13
  }
14
14
  }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "devDependencies": {
3
- "@vitejs/plugin-vue-jsx": "^1.1.7"
3
+ "@vitejs/plugin-vue-jsx": "^1.3.0"
4
4
  }
5
5
  }
@@ -1,3 +1,5 @@
1
+ import { fileURLToPath } from 'url'
2
+
1
3
  import { defineConfig } from 'vite'
2
4
  import vue from '@vitejs/plugin-vue'
3
5
  import vueJsx from '@vitejs/plugin-vue-jsx'
@@ -7,7 +9,7 @@ export default defineConfig({
7
9
  plugins: [vue(), vueJsx()],
8
10
  resolve: {
9
11
  alias: {
10
- '@/': new URL('./src/', import.meta.url).pathname
12
+ '@': fileURLToPath(new URL('./src', import.meta.url))
11
13
  }
12
14
  }
13
15
  })
@@ -0,0 +1,5 @@
1
+ {
2
+ "dependencies": {
3
+ "pinia": "^2.0.4"
4
+ }
5
+ }
@@ -0,0 +1,16 @@
1
+ import { defineStore } from 'pinia'
2
+
3
+ export const useCounterStore = defineStore({
4
+ id: 'counter',
5
+ state: () => ({
6
+ counter: 0
7
+ }),
8
+ getters: {
9
+ doubleCount: (state) => state.counter * 2
10
+ },
11
+ actions: {
12
+ increment() {
13
+ this.counter++
14
+ }
15
+ }
16
+ })
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "dependencies": {
3
- "vue-router": "^4.0.11"
3
+ "vue-router": "^4.0.12"
4
4
  }
5
5
  }
@@ -4,7 +4,8 @@
4
4
  "typecheck": "vue-tsc --noEmit"
5
5
  },
6
6
  "devDependencies": {
7
- "typescript": "~4.3.5",
8
- "vue-tsc": "^0.2.3"
7
+ "@types/node": "^16.11.10",
8
+ "typescript": "~4.4.4",
9
+ "vue-tsc": "^0.29.6"
9
10
  }
10
11
  }
@@ -5,6 +5,7 @@
5
5
  "useDefineForClassFields": true,
6
6
  "module": "esnext",
7
7
  "moduleResolution": "node",
8
+ "isolatedModules": true,
8
9
  "strict": true,
9
10
  "jsx": "preserve",
10
11
  "sourceMap": true,
@@ -1,9 +1,9 @@
1
1
  import { createApp } from 'vue'
2
+ import { createPinia } from 'pinia'
2
3
  import App from './App.vue'
3
- import store from './store'
4
4
 
5
5
  const app = createApp(App)
6
6
 
7
- app.use(store)
7
+ app.use(createPinia())
8
8
 
9
9
  app.mount('#app')
@@ -1,12 +1,12 @@
1
1
  import { createApp } from 'vue'
2
- import App from './App.vue'
2
+ import { createPinia } from 'pinia'
3
3
 
4
+ import App from './App.vue'
4
5
  import router from './router'
5
- import store from './store'
6
6
 
7
7
  const app = createApp(App)
8
8
 
9
+ app.use(createPinia())
9
10
  app.use(router)
10
- app.use(store)
11
11
 
12
12
  app.mount('#app')