create-quasar 2.0.12 → 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.12",
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
@@ -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
@@ -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
@@ -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 (_) {