create-quasar 2.0.11 → 2.1.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-quasar",
3
- "version": "2.0.11",
3
+ "version": "2.1.0",
4
4
  "description": "Scaffolds Quasar Apps, AppExtensions or UI kits",
5
5
  "type": "module",
6
6
  "author": {
@@ -27,6 +27,7 @@
27
27
  "node": ">=16"
28
28
  },
29
29
  "dependencies": {
30
+ "cross-spawn": "^7.0.6",
30
31
  "fs-extra": "^11.2.0",
31
32
  "kolorist": "^1.8.0",
32
33
  "lodash": "^4.17.21",
@@ -16,33 +16,33 @@
16
16
  },
17
17
  "dependencies": {
18
18
  <% if (preset.axios) { %>"axios": "^1.2.1",<% } %>
19
- <% if (preset.i18n) { %>"vue-i18n": "^11.0.0",<% } %>
19
+ <% if (preset.i18n) { %>"vue-i18n": "^11.3.0",<% } %>
20
20
  <% if (preset.pinia) { %>"pinia": "^3.0.1",<% } %>
21
21
  "@quasar/extras": "^1.16.4",
22
22
  "quasar": "^2.16.0",
23
23
  "vue": "^3.5.22",
24
- "vue-router": "^5.0.0"
24
+ "vue-router": "^5.0.3"
25
25
  },
26
26
  "devDependencies": {
27
- <% if (preset.i18n) { %>"@intlify/unplugin-vue-i18n": "^4.0.0",<% } %>
27
+ <% if (preset.i18n) { %>"@intlify/unplugin-vue-i18n": "^11.0.0",<% } %>
28
28
  <% if (preset.eslint) { %>
29
- "@eslint/js": "^9.14.0",
30
- "eslint": "^9.14.0",
31
- "eslint-plugin-vue": "^10.4.0",
32
- "globals": "^16.4.0",
33
- "vite-plugin-checker": "^0.11.0",
34
- "vue-eslint-parser": "^10.2.0",
29
+ "@eslint/js": "^10.0.1",
30
+ "eslint": "^10.0.3",
31
+ "eslint-plugin-vue": "^10.8.0",
32
+ "globals": "^17.4.0",
33
+ "vite-plugin-checker": "^0.12.0",
34
+ "vue-eslint-parser": "^10.4.0",
35
35
  <% } %>
36
36
  <% if (prettier) { %>
37
- "@vue/eslint-config-prettier": "^10.1.0",
38
- "prettier": "^3.3.3",
37
+ "@vue/eslint-config-prettier": "^10.2.0",
38
+ "prettier": "^3.8.1",
39
39
  <% } %>
40
- "@quasar/app-vite": "^2.1.0",
41
- "autoprefixer": "^10.4.2",
42
- "postcss": "^8.4.14"
40
+ "@quasar/app-vite": "^2.5.1",
41
+ "autoprefixer": "^10.4.27",
42
+ "postcss": "^8.5.8"
43
43
  },
44
44
  "engines": {
45
- "node": "^28 || ^26 || ^24 || ^22 || ^20",
45
+ "node": "^28 || ^26 || ^24 || ^22.12",
46
46
  "npm": ">= 6.13.4",
47
47
  "yarn": ">= 1.21.1",
48
48
  "pnpm": ">= 10.0.0"
@@ -1,2 +1,6 @@
1
1
  # https://pnpm.io/settings
2
2
  shamefullyHoist: true
3
+
4
+ onlyBuiltDependencies:
5
+ - '@parcel/watcher'
6
+ - esbuild
@@ -39,8 +39,8 @@ export default defineConfig((<% if (preset.i18n) { %>ctx<% } else { %>/* ctx */<
39
39
  // Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-file#build
40
40
  build: {
41
41
  target: {
42
- browser: [ 'es2022', 'firefox115', 'chrome115', 'safari14' ],
43
- node: 'node20'
42
+ browser: 'baseline-widely-available',
43
+ node: 'node22'
44
44
  },
45
45
 
46
46
  vueRouterMode: 'hash', // available values: 'hash', 'history'
@@ -170,7 +170,7 @@ export default defineComponent({
170
170
  })
171
171
  </script><% } else if (sfcStyle === 'options') { %>
172
172
  <script>
173
- import { defineComponent, ref } from 'vue'
173
+ import { defineComponent } from 'vue'
174
174
  import EssentialLink from 'components/EssentialLink.vue'
175
175
 
176
176
  const linksList = [
@@ -16,29 +16,29 @@
16
16
  },
17
17
  "dependencies": {
18
18
  <% if (preset.axios) { %>"axios": "^1.2.1",<% } %>
19
- <% if (preset.i18n) { %>"vue-i18n": "^11.0.0",<% } %>
19
+ <% if (preset.i18n) { %>"vue-i18n": "^11.3.0",<% } %>
20
20
  <% if (preset.pinia) { %>"pinia": "^3.0.1",<% } %>
21
21
  "@quasar/extras": "^1.16.4",
22
22
  "core-js": "^3.31.1",
23
23
  "quasar": "^2.16.0",
24
24
  "vue": "^3.5.22",
25
- "vue-router": "^5.0.0"
25
+ "vue-router": "^5.0.3"
26
26
  },
27
27
  "devDependencies": {
28
28
  <% if (preset.eslint) { %>
29
29
  "@eslint/js": "^9.14.0",
30
30
  "eslint": "^9.14.0",
31
- "eslint-plugin-vue": "^10.4.0",
31
+ "eslint-plugin-vue": "^10.8.0",
32
32
  "eslint-webpack-plugin": "^4.2.0",
33
- "globals": "^16.4.0",
34
- "vue-eslint-parser": "^10.2.0",
33
+ "globals": "^17.4.0",
34
+ "vue-eslint-parser": "^10.4.0",
35
35
  <% } %>
36
36
  <% if (prettier) { %>
37
- "@vue/eslint-config-prettier": "^10.1.0",
38
- "prettier": "^3.3.3",
37
+ "@vue/eslint-config-prettier": "^10.2.0",
38
+ "prettier": "^3.8.1",
39
39
  <% } %>
40
40
  "@quasar/app-webpack": "^4.1.0",
41
- "autoprefixer": "^10.4.2"
41
+ "autoprefixer": "^10.4.27"
42
42
  },
43
43
  "browserslist": [
44
44
  "last 10 Chrome versions",
@@ -1,2 +1,6 @@
1
1
  # https://pnpm.io/settings
2
2
  shamefullyHoist: true
3
+
4
+ onlyBuiltDependencies:
5
+ - core-js
6
+ - esbuild
@@ -170,7 +170,7 @@ export default defineComponent({
170
170
  })
171
171
  </script><% } else if (sfcStyle === 'options') { %>
172
172
  <script>
173
- import { defineComponent, ref } from 'vue'
173
+ import { defineComponent } from 'vue'
174
174
  import EssentialLink from 'components/EssentialLink.vue'
175
175
 
176
176
  const linksList = [
@@ -16,36 +16,36 @@
16
16
  },
17
17
  "dependencies": {
18
18
  <% if (preset.axios) { %>"axios": "^1.2.1",<% } %>
19
- <% if (preset.i18n) { %>"vue-i18n": "^11.0.0",<% } %>
19
+ <% if (preset.i18n) { %>"vue-i18n": "^11.3.0",<% } %>
20
20
  <% if (preset.pinia) { %>"pinia": "^3.0.1",<% } %>
21
21
  "@quasar/extras": "^1.16.4",
22
22
  "quasar": "^2.16.0",
23
23
  "vue": "^3.5.22",
24
- "vue-router": "^5.0.0"
24
+ "vue-router": "^5.0.3"
25
25
  },
26
26
  "devDependencies": {
27
27
  <% if (preset.eslint) { %>
28
- "@eslint/js": "^9.14.0",
29
- "eslint": "^9.14.0",
30
- "eslint-plugin-vue": "^10.4.0",
31
- "globals": "^16.4.0",
32
- "vue-tsc": "^3.0.7",
33
- "@vue/eslint-config-typescript": "^14.4.0",
34
- "vite-plugin-checker": "^0.11.0",
35
- "vue-eslint-parser": "^10.2.0",
28
+ "@eslint/js": "^10.0.1",
29
+ "eslint": "^10.0.3",
30
+ "eslint-plugin-vue": "^10.8.0",
31
+ "globals": "^17.4.0",
32
+ "vue-tsc": "^3.2.6",
33
+ "@vue/eslint-config-typescript": "^14.7.0",
34
+ "vite-plugin-checker": "^0.12.0",
35
+ "vue-eslint-parser": "^10.4.0",
36
36
  <% } %>
37
37
  <% if (prettier) { %>
38
- "@vue/eslint-config-prettier": "^10.1.0",
39
- "prettier": "^3.3.3",
38
+ "@vue/eslint-config-prettier": "^10.2.0",
39
+ "prettier": "^3.8.1",
40
40
  <% } %>
41
- "@types/node": "^20.5.9",
42
- <% if (preset.i18n) { %>"@intlify/unplugin-vue-i18n": "^4.0.0",<% } %>
43
- "@quasar/app-vite": "^2.1.0",
44
- "autoprefixer": "^10.4.2",
45
- "typescript": "^5.9.2"
41
+ "@types/node": "^22.19.11",
42
+ <% if (preset.i18n) { %>"@intlify/unplugin-vue-i18n": "^11.0.0",<% } %>
43
+ "@quasar/app-vite": "^2.5.1",
44
+ "autoprefixer": "^10.4.27",
45
+ "typescript": "^5.9.3"
46
46
  },
47
47
  "engines": {
48
- "node": "^28 || ^26 || ^24 || ^22 || ^20",
48
+ "node": "^28 || ^26 || ^24 || ^22.12",
49
49
  "npm": ">= 6.13.4",
50
50
  "yarn": ">= 1.21.1",
51
51
  "pnpm": ">= 10.0.0"
@@ -1,2 +1,6 @@
1
1
  # https://pnpm.io/settings
2
2
  shamefullyHoist: true
3
+
4
+ onlyBuiltDependencies:
5
+ - '@parcel/watcher'
6
+ - esbuild
@@ -39,8 +39,8 @@ export default defineConfig((<% if (preset.i18n) { %>ctx<% } else { %>/* ctx */<
39
39
  // Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-file#build
40
40
  build: {
41
41
  target: {
42
- browser: [ 'es2022', 'firefox115', 'chrome115', 'safari14' ],
43
- node: 'node20'
42
+ browser: 'baseline-widely-available',
43
+ node: 'node22'
44
44
  },
45
45
 
46
46
  typescript: {
@@ -16,33 +16,33 @@
16
16
  },
17
17
  "dependencies": {
18
18
  <% if (preset.axios) { %>"axios": "^1.2.1",<% } %>
19
- <% if (preset.i18n) { %>"vue-i18n": "^11.0.0",<% } %>
19
+ <% if (preset.i18n) { %>"vue-i18n": "^11.3.0",<% } %>
20
20
  <% if (preset.pinia) { %>"pinia": "^3.0.1",<% } %>
21
21
  "@quasar/extras": "^1.16.4",
22
22
  "core-js": "^3.6.5",
23
23
  "quasar": "^2.16.0",
24
24
  "vue": "^3.5.22",
25
- "vue-router": "^5.0.0"
25
+ "vue-router": "^5.0.3"
26
26
  },
27
27
  "devDependencies": {
28
28
  <% if (preset.eslint) { %>
29
29
  "@eslint/js": "^9.14.0",
30
30
  "eslint": "^9.14.0",
31
- "eslint-plugin-vue": "^10.4.0",
31
+ "eslint-plugin-vue": "^10.8.0",
32
32
  "eslint-webpack-plugin": "^4.2.0",
33
- "@vue/eslint-config-typescript": "^14.4.0",
34
- "globals": "^16.4.0",
35
- "vue-eslint-parser": "^10.2.0",
33
+ "@vue/eslint-config-typescript": "^14.7.0",
34
+ "globals": "^17.4.0",
35
+ "vue-eslint-parser": "^10.4.0",
36
36
  <% } %>
37
37
  <% if (prettier) { %>
38
- "@vue/eslint-config-prettier": "^10.1.0",
39
- "prettier": "^3.3.3",
38
+ "@vue/eslint-config-prettier": "^10.2.0",
39
+ "prettier": "^3.8.1",
40
40
  <% } %>
41
41
  "@types/node": "^20.5.9",
42
42
  "@quasar/app-webpack": "^4.1.0",
43
- "autoprefixer": "^10.4.2",
43
+ "autoprefixer": "^10.4.27",
44
44
  "ts-loader": "^9.4.2",
45
- "typescript": "^5.9.2"
45
+ "typescript": "^5.9.3"
46
46
  },
47
47
  "browserslist": [
48
48
  "last 10 Chrome versions",
@@ -1,2 +1,6 @@
1
1
  # https://pnpm.io/settings
2
2
  shamefullyHoist: true
3
+
4
+ onlyBuiltDependencies:
5
+ - core-js
6
+ - esbuild
@@ -28,11 +28,11 @@
28
28
  "@types/eslint": "^9.6.0",
29
29
  "@types/eslint__js": "^8.42.3",
30
30
  "@types/node": "^20.12.8",
31
- "eslint": "^9.8.0",
31
+ "eslint": "^10.0.3",
32
32
  "eslint-config-prettier": "^9.1.0",
33
33
  "eslint-plugin-vue": "^9.27.0",
34
- "globals": "^15.9.0",
35
- "prettier": "^3.3.3",
34
+ "globals": "^17.4.0",
35
+ "prettier": "^3.8.1",
36
36
  "typescript": "^5.5.4",
37
37
  "typescript-eslint": "^8.0.1"
38
38
  }
@@ -32,7 +32,7 @@
32
32
  "mkdist": "^1.5.4",
33
33
  "quasar": "^2.16.7",
34
34
  "vue": "^3.4.36",
35
- "vue-tsc": "^2.0.29"
35
+ "vue-tsc": "^3.2.6"
36
36
  },
37
37
  "peerDependencies": {
38
38
  "@quasar/app-vite": "^2.1.0",
@@ -16,7 +16,7 @@
16
16
  "@quasar/extras": "^1.16.12",
17
17
  "quasar": "^2.16.7",
18
18
  "vue": "^3.4.36",
19
- "vue-router": "^5.0.0",
19
+ "vue-router": "^5.0.3",
20
20
  "<%= pkgName %>": <% if (!packageManager || ['pnpm', 'bun'].includes(packageManager.name)) { %>"workspace:*"<% } else { %>"*"<% } %>
21
21
  },
22
22
  "devDependencies": {
@@ -16,7 +16,7 @@
16
16
  "core-js": "^3.38.0",
17
17
  "quasar": "^2.16.7",
18
18
  "vue": "^3.4.36",
19
- "vue-router": "^5.0.0",
19
+ "vue-router": "^5.0.3",
20
20
  "<%= pkgName %>": <% if (!packageManager || ['pnpm', 'bun'].includes(packageManager?.name)) { %>"workspace:*"<% } else { %>"*"<% } %>
21
21
  },
22
22
  "devDependencies": {
@@ -20,7 +20,7 @@
20
20
  "devDependencies": {
21
21
  "autoprefixer": "^10.0.2",
22
22
  "cssnano": "^4.1.10",
23
- "postcss": "^8.1.9",
23
+ "postcss": "^8.5.8",
24
24
  "rtlcss": "^2.6.1",
25
25
  "sass": "^1.33.0",
26
26
  "quasar": "^2.16.0",
@@ -38,7 +38,7 @@
38
38
  "@rollup/plugin-replace": "^2.4.2",
39
39
  "uglify-js": "^3.13.3",
40
40
  "vue": "^3.0.0",
41
- "vue-router": "^5.0.0",
41
+ "vue-router": "^5.0.3",
42
42
  "zlib": "^1.0.5"
43
43
  },
44
44
  "browserslist": [
package/utils/index.js CHANGED
@@ -1,7 +1,8 @@
1
1
  import { readFileSync, writeFileSync, existsSync } from 'node:fs'
2
2
  import { fileURLToPath } from 'node:url'
3
3
  import { sep, dirname, normalize, join, resolve, extname } from 'node:path'
4
- import { spawn, execSync as exec } from 'node:child_process'
4
+ import { execSync as exec } from 'node:child_process'
5
+ import { sync as spawnSync } from 'cross-spawn'
5
6
 
6
7
  import { emptyDirSync, ensureDirSync, ensureFileSync, copySync } from 'fs-extra/esm'
7
8
  import promptUser from 'prompts'
@@ -183,30 +184,20 @@ function printFinalMessage (scope) {
183
184
 
184
185
  function runCommand (cmd, args, options) {
185
186
  console.log()
186
- return new Promise((resolve, reject) => {
187
- const runner = spawn(
188
- cmd,
189
- args,
190
- Object.assign({
191
- cwd: process.cwd(),
192
- stdio: 'inherit',
193
- shell: true
194
- }, options)
195
- )
196
-
197
- runner.on('exit', code => {
198
- console.log()
199
-
200
- if (code) {
201
- console.log(` ${ cmd } FAILED...`)
202
- console.log()
203
- reject()
204
- }
205
- else {
206
- resolve()
207
- }
208
- })
209
- })
187
+
188
+ const runner = spawnSync(
189
+ cmd,
190
+ args,
191
+ { cwd: process.cwd(), stdio: 'inherit', ...options }
192
+ )
193
+
194
+ console.log()
195
+
196
+ if (runner.status) {
197
+ console.log(` ${ cmd } FAILED...`)
198
+ console.log()
199
+ throw new Error(`${ cmd } FAILED`)
200
+ }
210
201
  }
211
202
 
212
203
  function installDeps (scope) {
@@ -270,8 +261,19 @@ function initializeGit (projectFolder) {
270
261
  }
271
262
 
272
263
  try {
264
+ logger.log('Initializing Git repository...')
273
265
  exec('git init', { cwd: projectFolder })
274
266
  exec('git add -A', { cwd: projectFolder })
267
+
268
+ // Provide useful feedback to the user if they have GPG signing enabled to avoid feeling that the process is hanging
269
+ try {
270
+ const needsSigning = exec('git config --get commit.gpgsign', { cwd: projectFolder }).toString().trim()
271
+ if (needsSigning === 'true') {
272
+ logger.log('Creating initial commit (waiting for GPG signing)...')
273
+ }
274
+ }
275
+ catch (_) {}
276
+
275
277
  exec('git commit -m "Initialize the project 🚀" --no-verify', { cwd: projectFolder })
276
278
  }
277
279
  catch (_) {