@component-hook/create-app 1.0.4 → 1.1.1

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 (55) hide show
  1. package/README.md +106 -82
  2. package/dist/index.js +35 -18
  3. package/package.json +1 -1
  4. package/template-vue/.github/actions/setup-environment/action.yml +45 -45
  5. package/template-vue/.github/renovate.json +12 -12
  6. package/template-vue/.github/workflows/ci.yml +22 -22
  7. package/template-vue/.github/workflows/deploy.yml +27 -27
  8. package/template-vue/.github/workflows/preview.yml +17 -17
  9. package/template-vue/.gitlab/setup.yml +18 -18
  10. package/template-vue/.husky/commit-msg +3 -3
  11. package/template-vue/.husky/pre-commit +3 -3
  12. package/template-vue/.vscode/extensions.json +10 -10
  13. package/template-vue/.vscode/settings.json +27 -27
  14. package/template-vue/LICENSE +21 -21
  15. package/template-vue/README.md.art +81 -100
  16. package/template-vue/_gitignore +38 -38
  17. package/template-vue/_gitlab-ci.yml +22 -22
  18. package/template-vue/index.html.art +28 -26
  19. package/template-vue/lint-staged.config.js +2 -0
  20. package/template-vue/package.json +71 -73
  21. package/template-vue/playwright.config.ts +12 -23
  22. package/template-vue/postcss.config.js +11 -10
  23. package/template-vue/src/__tests__/e2e/{IndexPage.spec.ts → home.spec.ts} +9 -5
  24. package/template-vue/src/__tests__/setup/unit-test.ts +1 -1
  25. package/template-vue/src/__tests__/unit/components/{indexPage → home}/HelloWorld.test.ts +3 -3
  26. package/template-vue/src/__tests__/unit/render/index.ts +4 -4
  27. package/template-vue/src/components/svg-icon/index.ts +1 -0
  28. package/template-vue/src/locales/en-US.json +3 -3
  29. package/template-vue/src/locales/zh-TW.json +3 -3
  30. package/template-vue/src/main.ts +6 -7
  31. package/template-vue/src/{components/indexPage → pages/home/components}/HelloWorld.vue +3 -8
  32. package/template-vue/src/pages/{IndexPage.vue → home/index.vue} +14 -3
  33. package/template-vue/src/router/index.ts +2 -2
  34. package/template-vue/src/stores/modules/{config.ts → config.ts.art} +1 -1
  35. package/template-vue/src/styles/base.css +48 -0
  36. package/template-vue/src/styles/common/all.css +1 -0
  37. package/template-vue/src/styles/common/button.css +15 -0
  38. package/template-vue/src/styles/index.css +3 -0
  39. package/template-vue/src/styles/tailwind.css +1 -0
  40. package/template-vue/src/vite-env.d.ts +13 -12
  41. package/template-vue/tsconfig.app.json +13 -13
  42. package/template-vue/tsconfig.json +14 -14
  43. package/template-vue/tsconfig.node.json +12 -12
  44. package/template-vue/tsconfig.vitest.json +8 -8
  45. package/template-vue/vite.config.ts +12 -11
  46. package/template-vue/vitest.config.ts +1 -1
  47. package/template-vue/public/mockServiceWorker.js +0 -307
  48. package/template-vue/src/components.d.ts +0 -14
  49. package/template-vue/src/styles/common/all.postcss +0 -1
  50. package/template-vue/src/styles/common/button.postcss +0 -12
  51. package/template-vue/src/styles/index.postcss +0 -1
  52. package/template-vue/src/styles/tailwind.postcss +0 -39
  53. package/template-vue/tailwind.config.js +0 -20
  54. /package/template-vue/src/assets/images/{svgIcons → svg-icons}/vue.svg +0 -0
  55. /package/template-vue/src/components/{common/SvgIcon.vue → svg-icon/src/index.vue} +0 -0
@@ -1,27 +1,27 @@
1
- {
2
- "[nginx]": {
3
- "editor.defaultFormatter": "raynigon.nginx-formatter"
4
- },
5
- "editor.tabSize": 2,
6
- "editor.defaultFormatter": "esbenp.prettier-vscode",
7
- "debug.javascript.autoAttachFilter": "smart",
8
- "editor.formatOnSave": true,
9
- "[dart]": {
10
- "editor.formatOnSave": true,
11
- "editor.formatOnType": true,
12
- "editor.rulers": [120],
13
- "editor.selectionHighlight": false,
14
- "editor.suggest.snippetsPreventQuickSuggestions": false,
15
- "editor.suggestSelection": "first",
16
- "editor.tabCompletion": "onlySnippets",
17
- "editor.wordBasedSuggestions": "off"
18
- },
19
- "workbench.editor.splitInGroupLayout": "vertical",
20
- "terminal.integrated.shellIntegration.enabled": true,
21
- "volar.format.initialIndent": {
22
- "html": true
23
- },
24
- "files.associations": {},
25
- "typescript.tsdk": "node_modules/typescript/lib",
26
- "cSpell.words": ["dotenv", "pinia", "persistedstate", "unplugin", "Sonarjs", "typecheck"]
27
- }
1
+ {
2
+ "[nginx]": {
3
+ "editor.defaultFormatter": "raynigon.nginx-formatter"
4
+ },
5
+ "editor.tabSize": 2,
6
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
7
+ "debug.javascript.autoAttachFilter": "smart",
8
+ "editor.formatOnSave": true,
9
+ "[dart]": {
10
+ "editor.formatOnSave": true,
11
+ "editor.formatOnType": true,
12
+ "editor.rulers": [120],
13
+ "editor.selectionHighlight": false,
14
+ "editor.suggest.snippetsPreventQuickSuggestions": false,
15
+ "editor.suggestSelection": "first",
16
+ "editor.tabCompletion": "onlySnippets",
17
+ "editor.wordBasedSuggestions": "off"
18
+ },
19
+ "workbench.editor.splitInGroupLayout": "vertical",
20
+ "terminal.integrated.shellIntegration.enabled": true,
21
+ "volar.format.initialIndent": {
22
+ "html": true
23
+ },
24
+ "files.associations": {},
25
+ "typescript.tsdk": "node_modules/typescript/lib",
26
+ "cSpell.words": ["dotenv", "pinia", "persistedstate", "unplugin", "Sonarjs", "typecheck"]
27
+ }
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c)
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,100 +1,81 @@
1
- # {{projectName}}
2
-
3
- ## Features
4
-
5
- - Vue 3
6
- - Pnpm 9
7
- - Vite 5
8
- - [Pinia](https://pinia.vuejs.org/) store
9
- - [pinia-plugin-persistedstate](https://www.npmjs.com/package/pinia-plugin-persistedstate)
10
- - Routing using [vue-router 4](https://router.vuejs.org/)
11
- - TypeScript 5
12
- - Axios
13
- - Tailwind CSS 3
14
- - Vue-i18n 9
15
- - PostCSS 8 w/ `postcss-nesting` plugin
16
- - [Cssnano](https://cssnano.github.io/cssnano/) for minimizing production CSS
17
- - [Postcss-pxtorem](https://www.npmjs.com/package/postcss-pxtorem) generates rem units from pixel units
18
- - [Vite-plugin-svg-icons](https://github.com/vbenjs/vite-plugin-svg-icons) generate svg sprite map
19
- - [Unplugin-vue-components](https://www.npmjs.com/package/unplugin-vue-components) auto importing for common components
20
- - Eslint
21
- - [@component-hook/eslint-plugin](https://www.npmjs.com/package/@component-hook/eslint-plugin?activeTab=readme)
22
- - Prettier
23
- - [Husky](https://www.npmjs.com/package/husky) to improves commits
24
- - if encounter npx: command not found, can execute `ln -s $(which npx) /usr/local/bin/npx` in zsh
25
- - [commitlint](https://commitlint.js.org/#/) checks if your commit messages meet the conventional commit format
26
- - [lint-staged](https://github.com/okonet/lint-staged) filter files checked by pre commit lint
27
- - Alias `@` to `<project_root>/src`
28
- - Mock use [msw](https://mswjs.io/)
29
- - `npx msw init ./public`
30
- - Unit test use [Vitest](https://vitest.dev/) + [Testing Library](https://testing-library.com/)
31
- - [jsdom](https://www.npmjs.com/package/jsdom)
32
- - [@vitest/coverage-v8](https://vitest.dev/guide/coverage.html)
33
- - [@testing-library/jest-dom](https://testing-library.com/docs/ecosystem-jest-dom/)
34
- - [@testing-library/vue](https://testing-library.com/docs/vue-testing-library/intro/)
35
- - [@testing-library/user-event](https://testing-library.com/docs/ecosystem-user-event/)
36
- - E2E test use [playwright](https://playwright.dev/)
37
- - [Rollup-plugin-visualizer](https://github.com/btd/rollup-plugin-visualizer) visualize and analyze your Rollup bundle to see which modules are taking up space
38
- - Predefined and fully typed global variables:
39
- - `VITE_APP_VERSION` is read from `package.json` version at build time
40
- - `VITE_APP_BUILD_EPOCH` is populated as `new Date().getTime()` at build time
41
- - Github workflows
42
- - ci - on workflow call and dispatch
43
- - deploy - on push main branch
44
- - preview - on pull request
45
- - Gitlab CI
46
- - run tests - on branches, merge request and manual
47
-
48
- ## Project Files
49
-
50
- ```text
51
- src/
52
- ├── __tests__/
53
- │ ├── __mocks__/
54
- │ ├── setup/
55
- │ │ └── unitTest.ts
56
- │ ├── e2e/*
57
- │ └── unit/*
58
- ├── apis/*
59
- ├── assets/*
60
- │ └── images/
61
- │ └── svgIcons
62
- │ └── vue.svg
63
- ├── components/
64
- │ ├── common/
65
- │ │ └── SvgIcon.vue
66
- │ └── indexPage/
67
- │ └── HelloWorld.vue
68
- ├── configs/*
69
- ├── hooks/*
70
- ├── locales/
71
- │ ├── en-US.json
72
- │ └── zh-CN.json
73
- ├── mocks/
74
- │ ├── handlers/*
75
- │ │ ├── apis/*
76
- │ │ └── index.ts
77
- │ │── browser.ts
78
- │ └── server.ts
79
- ├── pages/
80
- │ └── IndexPage.vue
81
- ├── plugins/
82
- │ └── i18n.ts
83
- ├── router/
84
- │ └── index.ts
85
- ├── stores/
86
- │ ├── modules
87
- │ │ └── config.ts
88
- │ └── index.ts
89
- ├── styles/
90
- │ ├── common/
91
- | │ ├── all.postcss
92
- | │ └── button.postcss
93
- │ ├── index.postcss
94
- │ └── tailwind.postcss
95
- ├── types/*
96
- ├── utils/*
97
- ├── App.vue
98
- ├── vite-env.d.ts
99
- └── main.ts
100
- ```
1
+ # {{projectName}}
2
+
3
+ This project is built with [vue3](https://vuejs.org/) + [vite](https://vite.dev/), using [pnpm](https://pnpm.io/) for package management and [pinia](https://pinia.vuejs.org/) for state management.
4
+
5
+ ## Features
6
+
7
+ - **Development Experience**: Written in [typeScript](https://www.typescriptlang.org/), styled with [tailwindcss](https://tailwindcss.com/), and structured with [vue-router](https://router.vuejs.org/), and [vue-i18n](https://vue-i18n.intlify.dev/). Supports SVGs ([vite-plugin-svg-icons](https://github.com/vbenjs/vite-plugin-svg-icons)).
8
+ - **API & Mocking**: Handles requests with [axios](https://axios-http.com/docs/intro) and mocks APIs using [msw](https://mswjs.io/).
9
+ - **Code Quality**: Enforces standards with [eslint](https://eslint.org/) and [prettier](https://prettier.io/), with [husky](https://www.npmjs.com/package/husky), [commitlint](https://commitlint.js.org/#/), and [lint-staged](https://github.com/okonet/lint-staged) for commit validation.
10
+ - **Testing**: Uses [vitest](https://vitest.dev/) + [testing-library](https://testing-library.com/) for unit testing and [playwright](https://playwright.dev/) for E2E testing.
11
+ - **Optimization**: Compresses CSS with [cssnano](https://cssnano.github.io/cssnano/) , converts units with [postcss-pxtorem](https://www.npmjs.com/package/postcss-pxtorem), and analyzes assets with [rollup-plugin-visualizer](https://github.com/btd/rollup-plugin-visualizer).
12
+ - **CI/CD**: Integrates `{{gitRepository}}` for automated testing and deployment.
13
+
14
+ ## Code Features / Opinions
15
+
16
+ - Project root aliased as `@` to `<project_root>/src`
17
+ - Store persistedstate use [pinia-plugin-persistedstate](https://www.npmjs.com/package/pinia-plugin-persistedstate)
18
+ - ESlint plugin use [@component-hook/eslint-plugin](https://www.npmjs.com/package/@component-hook/eslint-plugin?activeTab=readme)
19
+ - if encounter npx: command not found, can execute `ln -s $(which npx) /usr/local/bin/npx` in zsh
20
+ - Predefined and fully typed global variables:
21
+ - `VITE_APP_VERSION` is read from `package.json` version at build time
22
+ - `VITE_APP_BUILD_EPOCH` is populated as `new Date().getTime()` at build time
23
+ - `VITE_APP_MOCK` is use mock environment
24
+
25
+ ## Project Files
26
+
27
+ ```text
28
+ src/
29
+ ├── __tests__/
30
+ │ ├── __mocks__/
31
+ │ ├── setup/
32
+ │ │ └── unitTest.ts
33
+ │ ├── e2e/*
34
+ │ └── unit/*
35
+ ├── apis/*
36
+ ├── assets/*
37
+ │ └── images/
38
+ │ └── svg-icons
39
+ │ └── vue.svg
40
+ ├── components/
41
+ │ └── svg-icon/
42
+ │ ├── src
43
+ │ │ └── index.vue
44
+ │ └── index.ts
45
+ ├── constants/*
46
+ ├── hooks/*
47
+ ├── locales/
48
+ │ ├── en-US.json
49
+ │ └── zh-CN.json
50
+ ├── mocks/
51
+ │ ├── handlers/*
52
+ │ │ ├── apis/*
53
+ │ │ └── index.ts
54
+ │ │── browser.ts
55
+ │ └── server.ts
56
+ ├── pages/
57
+ │ └── home/
58
+ │ ├── components
59
+ │ │ └── HelloWorld.vue
60
+ │ └── index.vue
61
+ ├── plugins/
62
+ │ └── i18n.ts
63
+ ├── router/
64
+ │ └── index.ts
65
+ ├── stores/
66
+ │ ├── modules
67
+ │ │ └── config.ts
68
+ │ └── index.ts
69
+ ├── styles/
70
+ │ ├── common/
71
+ | │ ├── all.css
72
+ | │ └── button.css
73
+ │ ├── base.css
74
+ │ ├── index.css
75
+ │ └── tailwind.css
76
+ ├── types/*
77
+ ├── utils/*
78
+ ├── App.vue
79
+ ├── vite-env.d.ts
80
+ └── main.ts
81
+ ```
@@ -1,38 +1,38 @@
1
- # Logs
2
- logs
3
- *.log
4
- npm-debug.log*
5
- yarn-debug.log*
6
- yarn-error.log*
7
- pnpm-debug.log*
8
- lerna-debug.log*
9
-
10
- node_modules
11
- dist
12
- dist-ssr
13
- *.local
14
- .env
15
-
16
- # Editor directories and files
17
- .vscode/*
18
- !.vscode/extensions.json
19
- !.vscode/settings.json
20
- .idea
21
- .DS_Store
22
- *.suo
23
- *.ntvs*
24
- *.njsproj
25
- *.sln
26
- *.sw?
27
-
28
- # Component auto import
29
- /src/components.d.ts
30
-
31
- # Test reports
32
- coverage
33
- /test-results/
34
- /playwright-report/
35
- /playwright/.cache/
36
-
37
- # Visualizer
38
- stats.html
1
+ # Logs
2
+ logs
3
+ *.log
4
+ npm-debug.log*
5
+ yarn-debug.log*
6
+ yarn-error.log*
7
+ pnpm-debug.log*
8
+ lerna-debug.log*
9
+
10
+ node_modules
11
+ dist
12
+ dist-ssr
13
+ *.local
14
+ .env
15
+
16
+ # Editor directories and files
17
+ .vscode/*
18
+ !.vscode/extensions.json
19
+ !.vscode/settings.json
20
+ .idea
21
+ .DS_Store
22
+ *.suo
23
+ *.ntvs*
24
+ *.njsproj
25
+ *.sln
26
+ *.sw?
27
+
28
+ # Component auto import
29
+ /src/components.d.ts
30
+
31
+ # Test reports
32
+ coverage
33
+ /test-results/
34
+ /playwright-report/
35
+ /playwright/.cache/
36
+
37
+ # Visualizer
38
+ stats.html
@@ -1,22 +1,22 @@
1
- stages:
2
- - test
3
- # - deploy
4
-
5
- include:
6
- - local: '.gitlab/setup.yml'
7
-
8
- run_test:
9
- stage: test
10
- image: mcr.microsoft.com/playwright:focal
11
- script:
12
- - npx playwright install --with-deps
13
- - pnpm test:unit
14
- - pnpm test:ci-e2e
15
- rules:
16
- - if: $CI_COMMIT_BRANCH
17
- changes:
18
- - 'src/**'
19
- - 'pnpm-lock.yaml'
20
- - 'package.json'
21
- - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
22
- - when: manual
1
+ stages:
2
+ - test
3
+ # - deploy
4
+
5
+ include:
6
+ - local: '.gitlab/setup.yml'
7
+
8
+ run_test:
9
+ stage: test
10
+ image: mcr.microsoft.com/playwright:focal
11
+ script:
12
+ - npx playwright install --with-deps
13
+ - pnpm test:unit
14
+ - pnpm test:ci-e2e
15
+ rules:
16
+ - if: $CI_COMMIT_BRANCH
17
+ changes:
18
+ - 'src/**'
19
+ - 'pnpm-lock.yaml'
20
+ - 'package.json'
21
+ - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
22
+ - when: manual
@@ -1,26 +1,28 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8" />
5
- <link
6
- rel="icon"
7
- type="image/svg+xml"
8
- href="/vite.svg"
9
- />
10
- <meta
11
- name="viewport"
12
- content="width=device-width, initial-scale=1.0"
13
- />
14
- <title>{{projectName}}</title>
15
- </head>
16
- <body>
17
- <div id="app"></div>
18
- <script
19
- type="module"
20
- src="/src/main.ts"
21
- ></script>
22
- <noscript>
23
- <p>This site requires JavaScript to work.</p>
24
- </noscript>
25
- </body>
26
- </html>
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <link
6
+ rel="icon"
7
+ type="image/svg+xml"
8
+ href="/vite.svg"
9
+ />
10
+ <meta
11
+ name="viewport"
12
+ content="width=device-width, initial-scale=1.0"
13
+ />
14
+ <title>{{projectName}}</title>
15
+ </head>
16
+ <body>
17
+ <div id="app"></div>
18
+ <script
19
+ type="module"
20
+ src="/src/main.ts"
21
+ ></script>
22
+ <noscript>
23
+ <h1>Opinionated, production ready template for Vite and Vue 3</h1>
24
+
25
+ <p>This site requires JavaScript to work.</p>
26
+ </noscript>
27
+ </body>
28
+ </html>
@@ -1,3 +1,5 @@
1
+ /** @type {import('lint-staged').Configuration} */
2
+
1
3
  export default {
2
4
  '*.{ts,vue}': () => 'pnpm typecheck',
3
5
  '*.{ts,js,vue}': () => 'pnpm lint',
@@ -1,73 +1,71 @@
1
- {
2
- "name": "vue-starter",
3
- "version": "0.0.0",
4
- "license": "MIT",
5
- "type": "module",
6
- "packageManager": "pnpm@10.6.3",
7
- "scripts": {
8
- "dev": "vite",
9
- "dev:mock": "MOCK=true vite",
10
- "build": "pnpm typecheck && vite build",
11
- "lint": "eslint --fix .",
12
- "test:unit": "vitest --coverage",
13
- "test:e2e": "playwright test --headed",
14
- "test:ui-e2e": "playwright test --ui",
15
- "test:ci-e2e": "playwright test",
16
- "typecheck": "vue-tsc --noEmit",
17
- "prepare": "husky",
18
- "preview": "vite preview"
19
- },
20
- "dependencies": {
21
- "axios": "^1.8.3",
22
- "pinia": "^3.0.1",
23
- "pinia-plugin-persistedstate": "^4.2.0",
24
- "vue": "^3.5.13",
25
- "vue-i18n": "^11.1.2",
26
- "vue-router": "^4.5.0"
27
- },
28
- "devDependencies": {
29
- "@component-hook/eslint-plugin": "1.0.1",
30
- "@intlify/unplugin-vue-i18n": "^6.0.3",
31
- "@playwright/test": "^1.51.0",
32
- "@testing-library/jest-dom": "^6.6.3",
33
- "@testing-library/user-event": "^14.6.1",
34
- "@testing-library/vue": "^8.1.0",
35
- "@tsconfig/node22": "22.0.0",
36
- "@types/node": "^22.13.10",
37
- "@vitejs/plugin-vue": "^5.2.2",
38
- "@vitest/coverage-v8": "^2.1.9",
39
- "@vue/tsconfig": "^0.7.0",
40
- "autoprefixer": "^10.4.21",
41
- "cssnano": "^7.0.6",
42
- "eslint": "^9.22.0",
43
- "jsdom": "^26.0.0",
44
- "msw": "^2.7.3",
45
- "postcss": "^8.5.3",
46
- "postcss-import": "^16.1.0",
47
- "postcss-nesting": "^13.0.1",
48
- "postcss-pxtorem": "^6.1.0",
49
- "prettier": "^3.5.3",
50
- "rollup-plugin-visualizer": "^5.14.0",
51
- "tailwindcss": "^3.4.17",
52
- "typescript": "^5.8.2",
53
- "unplugin-vue-components": "^0.28.0",
54
- "vite": "^5.4.14",
55
- "vite-plugin-svg-icons": "^2.0.1",
56
- "vitest": "^2.1.9",
57
- "vue-tsc": "^2.2.8"
58
- },
59
- "browserslist": [
60
- "> 1%",
61
- "last 2 versions",
62
- "not dead"
63
- ],
64
- "msw": {
65
- "workerDirectory": "public"
66
- },
67
- "optionalDependencies": {
68
- "@commitlint/cli": "^19.8.0",
69
- "@commitlint/config-conventional": "^19.8.0",
70
- "husky": "^9.1.7",
71
- "lint-staged": "^15.5.0"
72
- }
73
- }
1
+ {
2
+ "name": "vue-starter",
3
+ "version": "0.0.0",
4
+ "license": "MIT",
5
+ "type": "module",
6
+ "packageManager": "pnpm@10.10.0",
7
+ "scripts": {
8
+ "dev": "vite",
9
+ "dev:mock": "MOCK=true vite",
10
+ "build": "pnpm typecheck && vite build",
11
+ "lint": "eslint --fix .",
12
+ "test:unit": "vitest --coverage",
13
+ "test:e2e": "playwright test --headed",
14
+ "test:ui-e2e": "playwright test --ui",
15
+ "test:ci-e2e": "playwright test",
16
+ "typecheck": "vue-tsc --noEmit",
17
+ "prepare": "husky",
18
+ "preview": "vite preview"
19
+ },
20
+ "dependencies": {
21
+ "axios": "^1.9.0",
22
+ "pinia": "^3.0.2",
23
+ "pinia-plugin-persistedstate": "^4.3.0",
24
+ "vue": "^3.5.13",
25
+ "vue-i18n": "^11.1.3",
26
+ "vue-router": "^4.5.1"
27
+ },
28
+ "devDependencies": {
29
+ "@component-hook/eslint-plugin": "1.1.0",
30
+ "@intlify/unplugin-vue-i18n": "^6.0.8",
31
+ "@playwright/test": "^1.52.0",
32
+ "@tailwindcss/vite": "^4.1.6",
33
+ "@testing-library/jest-dom": "^6.6.3",
34
+ "@testing-library/user-event": "^14.6.1",
35
+ "@testing-library/vue": "^8.1.0",
36
+ "@tsconfig/node22": "^22.0.1",
37
+ "@types/node": "^22.15.17",
38
+ "@vitejs/plugin-vue": "^5.2.4",
39
+ "@vitest/coverage-v8": "^3.1.3",
40
+ "@vue/tsconfig": "^0.7.0",
41
+ "autoprefixer": "^10.4.21",
42
+ "cssnano": "^7.0.7",
43
+ "eslint": "^9.26.0",
44
+ "jsdom": "^26.1.0",
45
+ "msw": "^2.8.2",
46
+ "postcss": "^8.5.3",
47
+ "postcss-pxtorem": "^6.1.0",
48
+ "prettier": "^3.5.3",
49
+ "rollup-plugin-visualizer": "^5.13.1",
50
+ "tailwindcss": "^4.1.6",
51
+ "typescript": "^5.8.3",
52
+ "vite": "^6.3.5",
53
+ "vite-plugin-svg-icons": "^2.0.1",
54
+ "vitest": "^3.1.3",
55
+ "vue-tsc": "^2.2.10"
56
+ },
57
+ "browserslist": [
58
+ "> 1%",
59
+ "last 2 versions",
60
+ "not dead"
61
+ ],
62
+ "msw": {
63
+ "workerDirectory": "public"
64
+ },
65
+ "optionalDependencies": {
66
+ "@commitlint/cli": "^19.8.1",
67
+ "@commitlint/config-conventional": "^19.8.1",
68
+ "husky": "^9.1.7",
69
+ "lint-staged": "^16.0.0"
70
+ }
71
+ }