create-vuetify 2.2.5 → 2.3.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 (49) hide show
  1. package/dist/index.mjs +713 -84
  2. package/package.json +7 -3
  3. package/template/javascript/base/eslint.config.js +23 -0
  4. package/template/javascript/base/package.json +7 -10
  5. package/template/javascript/base/src/router/index.js +21 -0
  6. package/template/javascript/base/vite.config.mjs +7 -0
  7. package/template/javascript/default/index.html +10 -13
  8. package/template/javascript/default/package.json +10 -7
  9. package/template/javascript/default/src/components/AppFooter.vue +2 -2
  10. package/template/javascript/default/vite.config.mjs +7 -0
  11. package/template/javascript/essentials/_eslintrc-auto-import.json +72 -0
  12. package/template/javascript/essentials/package.json +1 -1
  13. package/template/javascript/essentials/src/router/index.js +21 -1
  14. package/template/javascript/essentials/vite.config.mjs +7 -0
  15. package/template/typescript/base/env.d.ts +2 -0
  16. package/template/typescript/base/eslint.config.js +36 -0
  17. package/template/typescript/base/package.json +8 -12
  18. package/template/typescript/base/src/router/index.ts +21 -0
  19. package/template/typescript/base/vite.config.mts +7 -0
  20. package/template/typescript/default/_editorconfig +4 -3
  21. package/template/typescript/default/env.d.ts +1 -0
  22. package/template/typescript/default/index.html +7 -10
  23. package/template/typescript/default/package.json +21 -13
  24. package/template/typescript/default/tsconfig.app.json +14 -0
  25. package/template/typescript/default/tsconfig.json +8 -28
  26. package/template/typescript/default/tsconfig.node.json +14 -4
  27. package/template/typescript/default/vite.config.mts +7 -0
  28. package/template/typescript/essentials/_eslintrc-auto-import.json +69 -0
  29. package/template/typescript/essentials/env.d.ts +3 -0
  30. package/template/typescript/essentials/package.json +1 -1
  31. package/template/typescript/essentials/src/components/AppFooter.vue +2 -2
  32. package/template/typescript/essentials/src/router/index.ts +21 -1
  33. package/template/typescript/essentials/vite.config.mts +7 -0
  34. package/template/typescript/nuxt/app-layout.vue +5 -0
  35. package/template/typescript/nuxt/app.vue +9 -0
  36. package/template/typescript/nuxt/components/AppFooter.vue +79 -0
  37. package/template/typescript/nuxt/components/HelloWorld.vue +153 -0
  38. package/template/typescript/nuxt/layouts/default.vue +9 -0
  39. package/template/typescript/nuxt/modules/vuetify.ts +125 -0
  40. package/template/typescript/nuxt/pages/index.vue +8 -0
  41. package/template/typescript/nuxt/plugins/vuetify-nuxt.ts +8 -0
  42. package/template/typescript/nuxt/plugins/vuetify.ts +14 -0
  43. package/template/typescript/nuxt/vuetify.config.ts +8 -0
  44. package/dist/output.cjs +0 -264
  45. package/template/javascript/base/_eslintrc.js +0 -10
  46. package/template/typescript/base/_eslintrc.js +0 -20
  47. package/template/typescript/base/tsconfig.json +0 -32
  48. package/template/typescript/default/src/vite-env.d.ts +0 -7
  49. package/template/typescript/essentials/tsconfig.json +0 -33
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-vuetify",
3
- "version": "2.2.5",
3
+ "version": "2.3.0",
4
4
  "author": "Elijah Kotyluk <elijah@elijahkotyluk.com>",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -22,18 +22,21 @@
22
22
  "scripts": {
23
23
  "build": "node ./scripts/build.js",
24
24
  "start": "node ./index.js",
25
- "lint": "eslint --fix 'src/**'",
25
+ "lint": "eslint --fix ./src/**",
26
26
  "prepublishOnly": "npm run build"
27
27
  },
28
28
  "dependencies": {
29
29
  "kolorist": "^1.5.1",
30
30
  "minimist": "^1.2.6",
31
+ "magicast": "^0.3.4",
32
+ "package-manager-detector": "^0.2.2",
31
33
  "prompts": "^2.4.2",
32
34
  "validate-npm-package-name": "^4.0.0"
33
35
  },
34
36
  "devDependencies": {
35
37
  "@release-it/conventional-changelog": "^8.0.1",
36
38
  "@types/minimist": "^1.2.2",
39
+ "@types/node": "^20.12.8",
37
40
  "@types/prompts": "^2.0.14",
38
41
  "@types/validate-npm-package-name": "^4.0.0",
39
42
  "@typescript-eslint/eslint-plugin": "^5.30.6",
@@ -48,5 +51,6 @@
48
51
  "lint-staged": "^13.0.3",
49
52
  "release-it": "^17.0.3",
50
53
  "typescript": "^4.7.4"
51
- }
54
+ },
55
+ "packageManager": "pnpm@9.12.2+sha512.22721b3a11f81661ae1ec68ce1a7b879425a1ca5b991c975b074ac220b187ce56c708fe5db69f4c962c989452eee76c82877f4ee80f474cebd61ee13461b6228"
52
56
  }
@@ -0,0 +1,23 @@
1
+ import js from '@eslint/js'
2
+ import pluginVue from 'eslint-plugin-vue'
3
+
4
+ export default [
5
+ {
6
+ name: 'app/files-to-lint',
7
+ files: ['**/*.{js,mjs,jsx,vue}'],
8
+ },
9
+
10
+ {
11
+ name: 'app/files-to-ignore',
12
+ ignores: ['**/dist/**', '**/dist-ssr/**', '**/coverage/**'],
13
+ },
14
+
15
+ js.configs.recommended,
16
+ ...pluginVue.configs['flat/recommended'],
17
+
18
+ {
19
+ rules: {
20
+ 'vue/multi-word-component-names': 'off',
21
+ },
22
+ }
23
+ ]
@@ -1,19 +1,16 @@
1
1
  {
2
2
  "scripts": {
3
- "lint": "eslint . --fix --ignore-path .gitignore"
4
- },
5
- "dependencies": {
6
- "core-js": "^3.34.0"
3
+ "lint": "eslint . --fix"
7
4
  },
8
5
  "devDependencies": {
9
- "eslint": "^8.57.0",
10
- "eslint-config-standard": "^17.1.0",
6
+ "@eslint/js": "^9.14.0",
7
+ "eslint": "^9.14.0",
11
8
  "eslint-plugin-import": "^2.29.1",
12
9
  "eslint-plugin-n": "^16.6.2",
13
10
  "eslint-plugin-node": "^11.1.0",
14
- "eslint-plugin-promise": "^6.1.1",
15
- "eslint-plugin-vue": "^9.22.0",
16
- "vue-router": "^4.3.0",
17
- "unplugin-vue-router": "^0.8.4"
11
+ "eslint-plugin-promise": "^6.4.0",
12
+ "eslint-plugin-vue": "^9.30.0",
13
+ "vue-router": "^4.4.0",
14
+ "unplugin-vue-router": "^0.10.0"
18
15
  }
19
16
  }
@@ -7,9 +7,30 @@
7
7
 
8
8
  // Composables
9
9
  import { createRouter, createWebHistory } from 'vue-router/auto'
10
+ import { routes } from 'vue-router/auto-routes'
10
11
 
11
12
  const router = createRouter({
12
13
  history: createWebHistory(import.meta.env.BASE_URL),
14
+ routes,
15
+ })
16
+
17
+ // Workaround for https://github.com/vitejs/vite/issues/11804
18
+ router.onError((err, to) => {
19
+ if (err?.message?.includes?.('Failed to fetch dynamically imported module')) {
20
+ if (!localStorage.getItem('vuetify:dynamic-reload')) {
21
+ console.log('Reloading page to fix dynamic import error')
22
+ localStorage.setItem('vuetify:dynamic-reload', 'true')
23
+ location.assign(to.fullPath)
24
+ } else {
25
+ console.error('Dynamic import error, reloading page did not fix it', err)
26
+ }
27
+ } else {
28
+ console.error(err)
29
+ }
30
+ })
31
+
32
+ router.isReady().then(() => {
33
+ localStorage.removeItem('vuetify:dynamic-reload')
13
34
  })
14
35
 
15
36
  export default router
@@ -51,4 +51,11 @@ export default defineConfig({
51
51
  server: {
52
52
  port: 3000,
53
53
  },
54
+ css: {
55
+ preprocessorOptions: {
56
+ sass: {
57
+ api: 'modern-compiler',
58
+ },
59
+ },
60
+ },
54
61
  })
@@ -1,16 +1,13 @@
1
1
  <!DOCTYPE html>
2
2
  <html lang="en">
3
-
4
- <head>
5
- <meta charset="UTF-8" />
6
- <link rel="icon" href="/favicon.ico" />
7
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8
- <title>Welcome to Vuetify 3</title>
9
- </head>
10
-
11
- <body>
12
- <div id="app"></div>
13
- <script type="module" src="/src/main.js"></script>
14
- </body>
15
-
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <link rel="icon" href="/favicon.ico">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>Welcome to Vuetify 3</title>
8
+ </head>
9
+ <body>
10
+ <div id="app"></div>
11
+ <script type="module" src="/src/main.js"></script>
12
+ </body>
16
13
  </html>
@@ -1,4 +1,6 @@
1
1
  {
2
+ "private": true,
3
+ "type": "module",
2
4
  "version": "0.0.0",
3
5
  "scripts": {
4
6
  "dev": "vite",
@@ -6,17 +8,18 @@
6
8
  "preview": "vite preview"
7
9
  },
8
10
  "dependencies": {
9
- "@mdi/font": "7.0.96",
11
+ "@mdi/font": "7.4.47",
10
12
  "roboto-fontface": "*",
11
- "vue": "^3.4.0",
12
- "vuetify": "^3.5.0"
13
+ "vue": "^3.4.31",
14
+ "vuetify": "^3.6.14"
13
15
  },
14
16
  "devDependencies": {
15
- "@vitejs/plugin-vue": "^5.0.4",
16
- "sass": "^1.71.1",
17
+ "@vitejs/plugin-vue": "^5.0.5",
18
+ "sass": "1.77.8",
19
+ "sass-embedded": "^1.77.8",
17
20
  "unplugin-fonts": "^1.1.1",
18
- "unplugin-vue-components": "^0.26.0",
21
+ "unplugin-vue-components": "^0.27.2",
19
22
  "vite-plugin-vuetify": "^2.0.3",
20
- "vite": "^5.1.5"
23
+ "vite": "^5.4.0"
21
24
  }
22
25
  }
@@ -47,7 +47,7 @@
47
47
  },
48
48
  {
49
49
  title: 'Vuetify X',
50
- icon: `svg:M2.04875 3.00002L9.77052 13.3248L1.99998 21.7192H3.74882L10.5519 14.3697L16.0486 21.7192H22L13.8437 10.8137L21.0765 3.00002H19.3277L13.0624 9.76874L8.0001 3.00002H2.04875ZM4.62054 4.28821H7.35461L19.4278 20.4308H16.6937L4.62054 4.28821Z`,
50
+ icon: ['M2.04875 3.00002L9.77052 13.3248L1.99998 21.7192H3.74882L10.5519 14.3697L16.0486 21.7192H22L13.8437 10.8137L21.0765 3.00002H19.3277L13.0624 9.76874L8.0001 3.00002H2.04875ZM4.62054 4.28821H7.35461L19.4278 20.4308H16.6937L4.62054 4.28821Z'],
51
51
  href: 'https://x.com/vuetifyjs',
52
52
  },
53
53
  {
@@ -57,7 +57,7 @@
57
57
  },
58
58
  {
59
59
  title: 'Vuetify Discord',
60
- icon: `mdi-discord`,
60
+ icon: ['M22,24L16.75,19L17.38,21H4.5A2.5,2.5 0 0,1 2,18.5V3.5A2.5,2.5 0 0,1 4.5,1H19.5A2.5,2.5 0 0,1 22,3.5V24M12,6.8C9.32,6.8 7.44,7.95 7.44,7.95C8.47,7.03 10.27,6.5 10.27,6.5L10.1,6.33C8.41,6.36 6.88,7.53 6.88,7.53C5.16,11.12 5.27,14.22 5.27,14.22C6.67,16.03 8.75,15.9 8.75,15.9L9.46,15C8.21,14.73 7.42,13.62 7.42,13.62C7.42,13.62 9.3,14.9 12,14.9C14.7,14.9 16.58,13.62 16.58,13.62C16.58,13.62 15.79,14.73 14.54,15L15.25,15.9C15.25,15.9 17.33,16.03 18.73,14.22C18.73,14.22 18.84,11.12 17.12,7.53C17.12,7.53 15.59,6.36 13.9,6.33L13.73,6.5C13.73,6.5 15.53,7.03 16.56,7.95C16.56,7.95 14.68,6.8 12,6.8M9.93,10.59C10.58,10.59 11.11,11.16 11.1,11.86C11.1,12.55 10.58,13.13 9.93,13.13C9.29,13.13 8.77,12.55 8.77,11.86C8.77,11.16 9.28,10.59 9.93,10.59M14.1,10.59C14.75,10.59 15.27,11.16 15.27,11.86C15.27,12.55 14.75,13.13 14.1,13.13C13.46,13.13 12.94,12.55 12.94,11.86C12.94,11.16 13.45,10.59 14.1,10.59Z'],
61
61
  href: 'https://community.vuetifyjs.com/',
62
62
  },
63
63
  {
@@ -44,4 +44,11 @@ export default defineConfig({
44
44
  server: {
45
45
  port: 3000,
46
46
  },
47
+ css: {
48
+ preprocessorOptions: {
49
+ sass: {
50
+ api: 'modern-compiler',
51
+ },
52
+ },
53
+ },
47
54
  })
@@ -0,0 +1,72 @@
1
+ {
2
+ "globals": {
3
+ "Component": true,
4
+ "ComponentPublicInstance": true,
5
+ "ComputedRef": true,
6
+ "EffectScope": true,
7
+ "ExtractDefaultPropTypes": true,
8
+ "ExtractPropTypes": true,
9
+ "ExtractPublicPropTypes": true,
10
+ "InjectionKey": true,
11
+ "PropType": true,
12
+ "Ref": true,
13
+ "VNode": true,
14
+ "WritableComputedRef": true,
15
+ "computed": true,
16
+ "createApp": true,
17
+ "customRef": true,
18
+ "defineAsyncComponent": true,
19
+ "defineComponent": true,
20
+ "effectScope": true,
21
+ "getCurrentInstance": true,
22
+ "getCurrentScope": true,
23
+ "h": true,
24
+ "inject": true,
25
+ "isProxy": true,
26
+ "isReactive": true,
27
+ "isReadonly": true,
28
+ "isRef": true,
29
+ "markRaw": true,
30
+ "nextTick": true,
31
+ "onActivated": true,
32
+ "onBeforeMount": true,
33
+ "onBeforeRouteLeave": true,
34
+ "onBeforeRouteUpdate": true,
35
+ "onBeforeUnmount": true,
36
+ "onBeforeUpdate": true,
37
+ "onDeactivated": true,
38
+ "onErrorCaptured": true,
39
+ "onMounted": true,
40
+ "onRenderTracked": true,
41
+ "onRenderTriggered": true,
42
+ "onScopeDispose": true,
43
+ "onServerPrefetch": true,
44
+ "onUnmounted": true,
45
+ "onUpdated": true,
46
+ "provide": true,
47
+ "reactive": true,
48
+ "readonly": true,
49
+ "ref": true,
50
+ "resolveComponent": true,
51
+ "shallowReactive": true,
52
+ "shallowReadonly": true,
53
+ "shallowRef": true,
54
+ "toRaw": true,
55
+ "toRef": true,
56
+ "toRefs": true,
57
+ "toValue": true,
58
+ "triggerRef": true,
59
+ "unref": true,
60
+ "useAttrs": true,
61
+ "useCssModule": true,
62
+ "useCssVars": true,
63
+ "useLink": true,
64
+ "useRoute": true,
65
+ "useRouter": true,
66
+ "useSlots": true,
67
+ "watch": true,
68
+ "watchEffect": true,
69
+ "watchPostEffect": true,
70
+ "watchSyncEffect": true
71
+ }
72
+ }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "devDependencies": {
3
3
  "pinia" : "^2.1.7",
4
- "unplugin-auto-import": "^0.17.5",
4
+ "unplugin-auto-import": "^0.17.6",
5
5
  "vite-plugin-vue-layouts": "^0.11.0"
6
6
  }
7
7
  }
@@ -7,10 +7,30 @@
7
7
  // Composables
8
8
  import { createRouter, createWebHistory } from 'vue-router/auto'
9
9
  import { setupLayouts } from 'virtual:generated-layouts'
10
+ import { routes } from 'vue-router/auto-routes'
10
11
 
11
12
  const router = createRouter({
12
13
  history: createWebHistory(import.meta.env.BASE_URL),
13
- extendRoutes: setupLayouts,
14
+ routes: setupLayouts(routes),
15
+ })
16
+
17
+ // Workaround for https://github.com/vitejs/vite/issues/11804
18
+ router.onError((err, to) => {
19
+ if (err?.message?.includes?.('Failed to fetch dynamically imported module')) {
20
+ if (!localStorage.getItem('vuetify:dynamic-reload')) {
21
+ console.log('Reloading page to fix dynamic import error')
22
+ localStorage.setItem('vuetify:dynamic-reload', 'true')
23
+ location.assign(to.fullPath)
24
+ } else {
25
+ console.error('Dynamic import error, reloading page did not fix it', err)
26
+ }
27
+ } else {
28
+ console.error(err)
29
+ }
30
+ })
31
+
32
+ router.isReady().then(() => {
33
+ localStorage.removeItem('vuetify:dynamic-reload')
14
34
  })
15
35
 
16
36
  export default router
@@ -64,4 +64,11 @@ export default defineConfig({
64
64
  server: {
65
65
  port: 3000,
66
66
  },
67
+ css: {
68
+ preprocessorOptions: {
69
+ sass: {
70
+ api: 'modern-compiler',
71
+ },
72
+ },
73
+ },
67
74
  })
@@ -0,0 +1,2 @@
1
+ /// <reference types="vite/client" />
2
+ /// <reference types="unplugin-vue-router/client" />
@@ -0,0 +1,36 @@
1
+ /**
2
+ * .eslint.js
3
+ *
4
+ * ESLint configuration file.
5
+ */
6
+
7
+ import pluginVue from 'eslint-plugin-vue'
8
+ import vueTsEslintConfig from '@vue/eslint-config-typescript'
9
+
10
+ export default [
11
+ {
12
+ name: 'app/files-to-lint',
13
+ files: ['**/*.{ts,mts,tsx,vue}'],
14
+ },
15
+
16
+ {
17
+ name: 'app/files-to-ignore',
18
+ ignores: ['**/dist/**', '**/dist-ssr/**', '**/coverage/**'],
19
+ },
20
+
21
+ ...pluginVue.configs['flat/recommended'],
22
+ ...vueTsEslintConfig(),
23
+
24
+ {
25
+ rules: {
26
+ '@typescript-eslint/no-unused-expressions': [
27
+ 'error',
28
+ {
29
+ allowShortCircuit: true,
30
+ allowTernary: true,
31
+ },
32
+ ],
33
+ 'vue/multi-word-component-names': 'off',
34
+ }
35
+ }
36
+ ]
@@ -1,20 +1,16 @@
1
1
  {
2
2
  "scripts": {
3
- "lint": "eslint . --fix --ignore-path .gitignore"
3
+ "lint": "eslint . --fix"
4
4
  },
5
5
  "dependencies": {
6
- "core-js": "^3.34.0"
6
+ "core-js": "^3.37.1"
7
7
  },
8
8
  "devDependencies": {
9
- "@vue/eslint-config-typescript": "^13.0.0",
10
- "eslint": "^8.57.0",
11
- "eslint-config-standard": "^17.1.0",
12
- "eslint-plugin-import": "^2.29.1",
13
- "eslint-plugin-n": "^16.6.2",
14
- "eslint-plugin-node": "^11.1.0",
15
- "eslint-plugin-promise": "^6.1.1",
16
- "eslint-plugin-vue": "^9.22.0",
17
- "vue-router": "^4.3.0",
18
- "unplugin-vue-router": "^0.8.4"
9
+ "@eslint/js": "^9.14.0",
10
+ "@vue/eslint-config-typescript": "^14.1.3",
11
+ "eslint": "^9.14.0",
12
+ "eslint-plugin-vue": "^9.30.0",
13
+ "vue-router": "^4.4.0",
14
+ "unplugin-vue-router": "^0.10.0"
19
15
  }
20
16
  }
@@ -6,9 +6,30 @@
6
6
 
7
7
  // Composables
8
8
  import { createRouter, createWebHistory } from 'vue-router/auto'
9
+ import { routes } from 'vue-router/auto-routes'
9
10
 
10
11
  const router = createRouter({
11
12
  history: createWebHistory(import.meta.env.BASE_URL),
13
+ routes,
14
+ })
15
+
16
+ // Workaround for https://github.com/vitejs/vite/issues/11804
17
+ router.onError((err, to) => {
18
+ if (err?.message?.includes?.('Failed to fetch dynamically imported module')) {
19
+ if (!localStorage.getItem('vuetify:dynamic-reload')) {
20
+ console.log('Reloading page to fix dynamic import error')
21
+ localStorage.setItem('vuetify:dynamic-reload', 'true')
22
+ location.assign(to.fullPath)
23
+ } else {
24
+ console.error('Dynamic import error, reloading page did not fix it', err)
25
+ }
26
+ } else {
27
+ console.error(err)
28
+ }
29
+ })
30
+
31
+ router.isReady().then(() => {
32
+ localStorage.removeItem('vuetify:dynamic-reload')
12
33
  })
13
34
 
14
35
  export default router
@@ -51,4 +51,11 @@ export default defineConfig({
51
51
  server: {
52
52
  port: 3000,
53
53
  },
54
+ css: {
55
+ preprocessorOptions: {
56
+ sass: {
57
+ api: 'modern-compiler',
58
+ },
59
+ },
60
+ },
54
61
  })
@@ -1,5 +1,6 @@
1
- [*.{js,jsx,ts,tsx,vue}]
2
- indent_style = space
1
+ [*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,vue}]
2
+ charset = utf-8
3
3
  indent_size = 2
4
- trim_trailing_whitespace = true
4
+ indent_style = space
5
5
  insert_final_newline = true
6
+ trim_trailing_whitespace = true
@@ -0,0 +1 @@
1
+ /// <reference types="vite/client" />
@@ -1,16 +1,13 @@
1
1
  <!DOCTYPE html>
2
2
  <html lang="en">
3
-
4
- <head>
5
- <meta charset="UTF-8" />
6
- <link rel="icon" href="/favicon.ico" />
7
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <link rel="icon" href="/favicon.ico">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
8
7
  <title>Welcome to Vuetify 3</title>
9
- </head>
10
-
11
- <body>
8
+ </head>
9
+ <body>
12
10
  <div id="app"></div>
13
11
  <script type="module" src="/src/main.ts"></script>
14
- </body>
15
-
12
+ </body>
16
13
  </html>
@@ -1,26 +1,34 @@
1
1
  {
2
+ "private": true,
3
+ "type": "module",
2
4
  "version": "0.0.0",
3
5
  "scripts": {
4
6
  "dev": "vite",
5
- "build": "vue-tsc --noEmit && vite build",
6
- "preview": "vite preview"
7
+ "build": "run-p type-check \"build-only {@}\" --",
8
+ "preview": "vite preview",
9
+ "build-only": "vite build",
10
+ "type-check": "vue-tsc --build --force"
7
11
  },
8
12
  "dependencies": {
9
- "@mdi/font": "6.2.95",
13
+ "@mdi/font": "7.4.47",
10
14
  "roboto-fontface": "*",
11
- "vue": "^3.4.21",
12
- "vuetify": "^3.5.8"
15
+ "vue": "^3.4.31",
16
+ "vuetify": "^3.6.14"
13
17
  },
14
18
  "devDependencies": {
15
- "@babel/types": "^7.24.0",
16
- "@types/node": "^20.11.25",
17
- "@vitejs/plugin-vue": "^5.0.4",
18
- "sass": "^1.71.1",
19
- "typescript": "^5.4.2",
19
+ "@tsconfig/node22": "^22.0.0",
20
+ "@types/node": "^22.9.0",
21
+ "@vitejs/plugin-vue": "^5.1.4",
22
+ "@vue/eslint-config-typescript": "^14.1.3",
23
+ "@vue/tsconfig": "^0.5.1",
24
+ "npm-run-all2": "^7.0.1",
25
+ "sass": "1.77.8",
26
+ "sass-embedded": "^1.77.8",
27
+ "typescript": "~5.6.3",
20
28
  "unplugin-fonts": "^1.1.1",
21
- "unplugin-vue-components": "^0.26.0",
29
+ "unplugin-vue-components": "^0.27.2",
22
30
  "vite-plugin-vuetify": "^2.0.3",
23
- "vite": "^5.1.5",
24
- "vue-tsc": "^2.0.6"
31
+ "vite": "^5.4.10",
32
+ "vue-tsc": "^2.1.10"
25
33
  }
26
34
  }
@@ -0,0 +1,14 @@
1
+ {
2
+ "extends": "@vue/tsconfig/tsconfig.dom.json",
3
+ "include": ["env.d.ts", "src/**/*", "src/**/*.vue"],
4
+ "exclude": ["src/**/__tests__/*"],
5
+ "compilerOptions": {
6
+ "composite": true,
7
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
8
+
9
+ "baseUrl": ".",
10
+ "paths": {
11
+ "@/*": ["./src/*"]
12
+ }
13
+ }
14
+ }
@@ -1,31 +1,11 @@
1
1
  {
2
- "compilerOptions": {
3
- "target": "ESNext",
4
- "jsx": "preserve",
5
- "lib": ["DOM", "ESNext"],
6
- "baseUrl": ".",
7
- "module": "ESNext",
8
- "moduleResolution": "bundler",
9
- "paths": {
10
- "@/*": ["src/*"]
2
+ "files": [],
3
+ "references": [
4
+ {
5
+ "path": "./tsconfig.node.json"
11
6
  },
12
- "resolveJsonModule": true,
13
- "types": [
14
- "vite/client"
15
- ],
16
- "allowJs": true,
17
- "strict": true,
18
- "strictNullChecks": true,
19
- "noUnusedLocals": true,
20
- "esModuleInterop": true,
21
- "forceConsistentCasingInFileNames": true,
22
- "isolatedModules": true,
23
- "skipLibCheck": true
24
- },
25
- "include": [
26
- "src/**/*",
27
- "src/**/*.vue"
28
- ],
29
- "exclude": ["dist", "node_modules", "cypress"],
30
- "references": [{ "path": "./tsconfig.node.json" }],
7
+ {
8
+ "path": "./tsconfig.app.json"
9
+ }
10
+ ]
31
11
  }
@@ -1,9 +1,19 @@
1
1
  {
2
+ "extends": "@tsconfig/node22/tsconfig.json",
3
+ "include": [
4
+ "vite.config.*",
5
+ "vitest.config.*",
6
+ "cypress.config.*",
7
+ "nightwatch.conf.*",
8
+ "playwright.config.*"
9
+ ],
2
10
  "compilerOptions": {
3
11
  "composite": true,
12
+ "noEmit": true,
13
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
14
+
4
15
  "module": "ESNext",
5
- "moduleResolution": "bundler",
6
- "allowSyntheticDefaultImports": true
7
- },
8
- "include": ["vite.config.mts"]
16
+ "moduleResolution": "Bundler",
17
+ "types": ["node"]
18
+ }
9
19
  }
@@ -44,4 +44,11 @@ export default defineConfig({
44
44
  server: {
45
45
  port: 3000,
46
46
  },
47
+ css: {
48
+ preprocessorOptions: {
49
+ sass: {
50
+ api: 'modern-compiler',
51
+ },
52
+ },
53
+ },
47
54
  })