From 504330732c5d7a7c9efcbf7b56b89d9c2a0a03b5 Mon Sep 17 00:00:00 2001 From: Soybean Date: Sat, 9 Dec 2023 21:46:09 +0800 Subject: [PATCH] chore(projects): perf template-vue --- .npmrc | 1 + .vscode/settings.json | 2 +- eslint.config.js | 2 +- package.json | 4 +- .../template-ts-lib/.vscode/settings.json | 2 +- .../create-soybean/template-ts-lib/_gitignore | 4 -- .../template-ts-lib/package.json | 10 ++-- .../template-vue/.vscode/launch.json | 7 +++ .../template-vue/.vscode/settings.json | 15 +----- .../create-soybean/template-vue/_gitignore | 4 -- .../create-soybean/template-vue/package.json | 4 +- .../src/components/HelloWorld.vue | 4 +- .../src/components/TheWelcome.vue | 34 ++++++------ pnpm-lock.yaml | 54 +++++++++++++++++-- 14 files changed, 93 insertions(+), 54 deletions(-) diff --git a/.npmrc b/.npmrc index 43e6b35..e3ff517 100644 --- a/.npmrc +++ b/.npmrc @@ -1,2 +1,3 @@ registry=https://registry.npmmirror.com/ shamefully-hoist=true +ignore-workspace-root-check=true diff --git a/.vscode/settings.json b/.vscode/settings.json index d5e4870..226fd42 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -5,6 +5,6 @@ }, "eslint.experimental.useFlatConfig": true, "editor.formatOnSave": false, - "eslint.validate": ["javascript", "javascriptreact", "typescript", "typescriptreact", "json", "jsonc", "json5"], + "eslint.validate": ["jsonc"], "prettier.enable": false } diff --git a/eslint.config.js b/eslint.config.js index d97c374..89ecc00 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,3 +1,3 @@ import { defineConfig } from '@soybeanjs/eslint-config'; -export default defineConfig(); +export default defineConfig({ vue: true }); diff --git a/package.json b/package.json index 5d84d17..a4a2ab2 100644 --- a/package.json +++ b/package.json @@ -68,11 +68,13 @@ "@types/crypto-js": "4.2.1", "@types/node": "20.10.4", "eslint": "8.55.0", + "eslint-plugin-vue": "9.19.2", "lint-staged": "15.2.0", "simple-git-hooks": "2.9.0", "tsx": "4.6.2", "typescript": "5.3.3", - "unbuild": "2.0.0" + "unbuild": "2.0.0", + "vue-eslint-parser": "9.3.2" }, "simple-git-hooks": { "commit-msg": "pnpm soy git-commit-verify", diff --git a/packages/create-soybean/template-ts-lib/.vscode/settings.json b/packages/create-soybean/template-ts-lib/.vscode/settings.json index d5e4870..226fd42 100644 --- a/packages/create-soybean/template-ts-lib/.vscode/settings.json +++ b/packages/create-soybean/template-ts-lib/.vscode/settings.json @@ -5,6 +5,6 @@ }, "eslint.experimental.useFlatConfig": true, "editor.formatOnSave": false, - "eslint.validate": ["javascript", "javascriptreact", "typescript", "typescriptreact", "json", "jsonc", "json5"], + "eslint.validate": ["jsonc"], "prettier.enable": false } diff --git a/packages/create-soybean/template-ts-lib/_gitignore b/packages/create-soybean/template-ts-lib/_gitignore index d3b89b6..c42fe57 100644 --- a/packages/create-soybean/template-ts-lib/_gitignore +++ b/packages/create-soybean/template-ts-lib/_gitignore @@ -28,7 +28,3 @@ coverage *.njsproj *.sln *.sw? - -package-lock.json -yarn.lock -pnpm-lock.yaml diff --git a/packages/create-soybean/template-ts-lib/package.json b/packages/create-soybean/template-ts-lib/package.json index 4736dfe..a4837f2 100644 --- a/packages/create-soybean/template-ts-lib/package.json +++ b/packages/create-soybean/template-ts-lib/package.json @@ -3,6 +3,7 @@ "type": "module", "version": "0.8.5", "private": true, + "packageManager": "pnpm@8.12.0", "exports": { ".": { "types": "./dist/index.d.ts", @@ -15,15 +16,13 @@ "types": "dist/index.d.ts", "files": ["dist"], "scripts": { - "build": "run-s typecheck build-only", - "build-only": "unbuild", + "build": "unbuild", "cleanup": "soy cleanup", "commit": "soy git-commit", "lint": "eslint . --fix", "prepare": "simple-git-hooks", "publish-pkg": "pnpm publish --access public", - "release": "run-s release-pkg build publish-pkg", - "release-pkg": "soy release", + "release": "soy release", "typecheck": "tsc --noEmit --skipLibCheck", "update-pkg": "soy ncu" }, @@ -36,13 +35,12 @@ "ofetch": "1.3.3" }, "devDependencies": { - "@soybeanjs/cli": "0.8.5", + "@soybeanjs/cli": "0.8.6", "@soybeanjs/eslint-config": "1.0.9", "@types/cli-progress": "3.11.5", "@types/node": "20.10.4", "eslint": "8.55.0", "lint-staged": "15.2.0", - "npm-run-all": "4.1.5", "simple-git-hooks": "2.9.0", "tsx": "4.6.2", "typescript": "5.3.3", diff --git a/packages/create-soybean/template-vue/.vscode/launch.json b/packages/create-soybean/template-vue/.vscode/launch.json index f00a97e..b1cb49a 100644 --- a/packages/create-soybean/template-vue/.vscode/launch.json +++ b/packages/create-soybean/template-vue/.vscode/launch.json @@ -1,6 +1,13 @@ { "version": "0.2.0", "configurations": [ + { + "type": "chrome", + "request": "launch", + "name": "Vue debugger", + "url": "http://localhost:9527", + "webRoot": "${workspaceFolder}" + }, { "type": "node", "request": "launch", diff --git a/packages/create-soybean/template-vue/.vscode/settings.json b/packages/create-soybean/template-vue/.vscode/settings.json index 58abf6c..d8dbbbe 100644 --- a/packages/create-soybean/template-vue/.vscode/settings.json +++ b/packages/create-soybean/template-vue/.vscode/settings.json @@ -5,19 +5,6 @@ }, "editor.formatOnSave": false, "eslint.experimental.useFlatConfig": true, - "eslint.validate": [ - "javascript", - "javascriptreact", - "typescript", - "typescriptreact", - "vue", - "html", - "css", - "json", - "jsonc", - "yaml", - "toml", - "markdown" - ], + "eslint.validate": ["html", "css", "jsonc"], "prettier.enable": false } diff --git a/packages/create-soybean/template-vue/_gitignore b/packages/create-soybean/template-vue/_gitignore index 8ba2840..c42fe57 100644 --- a/packages/create-soybean/template-vue/_gitignore +++ b/packages/create-soybean/template-vue/_gitignore @@ -28,7 +28,3 @@ coverage *.njsproj *.sln *.sw? - -package-lock.json -yarn.lock -pnpm-lock.yaml \ No newline at end of file diff --git a/packages/create-soybean/template-vue/package.json b/packages/create-soybean/template-vue/package.json index dbba29e..5a53439 100644 --- a/packages/create-soybean/template-vue/package.json +++ b/packages/create-soybean/template-vue/package.json @@ -3,6 +3,7 @@ "type": "module", "version": "0.8.5", "private": true, + "packageManager": "pnpm@8.12.0", "scripts": { "build": "run-s typecheck build-only", "build-only": "vite build", @@ -27,11 +28,12 @@ "@vitejs/plugin-vue": "4.5.2", "@vitejs/plugin-vue-jsx": "3.1.0", "eslint": "8.55.0", + "eslint-plugin-vue": "9.19.2", "lint-staged": "15.2.0", - "npm-run-all": "4.1.5", "simple-git-hooks": "2.9.0", "typescript": "5.3.3", "vite": "5.0.7", + "vue-eslint-parser": "9.3.2", "vue-tsc": "1.8.25" }, "simple-git-hooks": { diff --git a/packages/create-soybean/template-vue/src/components/HelloWorld.vue b/packages/create-soybean/template-vue/src/components/HelloWorld.vue index 2e3d41e..8477ff4 100644 --- a/packages/create-soybean/template-vue/src/components/HelloWorld.vue +++ b/packages/create-soybean/template-vue/src/components/HelloWorld.vue @@ -9,9 +9,9 @@ defineProps<{

{{ msg }}

You’ve successfully created a project with - Vite + Vite + - Vue 3 + Vue 3 . What's next?

diff --git a/packages/create-soybean/template-vue/src/components/TheWelcome.vue b/packages/create-soybean/template-vue/src/components/TheWelcome.vue index e8c4b18..dd8e27b 100644 --- a/packages/create-soybean/template-vue/src/components/TheWelcome.vue +++ b/packages/create-soybean/template-vue/src/components/TheWelcome.vue @@ -15,7 +15,7 @@ import SupportIcon from './icons/IconSupport.vue'; Vue’s - official documentation + official documentation provides you with all information you need to get started. @@ -26,15 +26,15 @@ import SupportIcon from './icons/IconSupport.vue'; This project is served and bundled with - Vite + Vite . The recommended IDE setup is - VSCode + VSCode + - Volar + Volar . If you need to test your components and web pages, check out - Cypress + Cypress and - Cypress Component Testing + Cypress Component Testing .
@@ -51,15 +51,15 @@ import SupportIcon from './icons/IconSupport.vue'; Get official tools and libraries for your project: - Pinia + Pinia , - Vue Router + Vue Router , - Vue Test Utils + Vue Test Utils , and - Vue Dev Tools + Vue Dev Tools . If you need more resources, we suggest paying - Awesome Vue + Awesome Vue a visit. @@ -70,13 +70,15 @@ import SupportIcon from './icons/IconSupport.vue'; Got stuck? Ask your question on - Vue Land + Vue Land , our official Discord server, or - StackOverflow + + StackOverflow + . You should also subscribe to - our mailing list + our mailing list and follow the official - @vuejs + @vuejs twitter account for latest news in the Vue world. @@ -87,7 +89,7 @@ import SupportIcon from './icons/IconSupport.vue'; As an independent project, Vue relies on community backing for its sustainability. You can help us by - becoming a sponsor + becoming a sponsor . diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5e8f6c2..60d37e2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -50,7 +50,7 @@ importers: version: 'link:' '@soybeanjs/eslint-config': specifier: 1.0.9 - version: 1.0.9(eslint@8.55.0)(typescript@5.3.3) + version: 1.0.9(eslint-plugin-vue@9.19.2)(eslint@8.55.0)(typescript@5.3.3)(vue-eslint-parser@9.3.2) '@types/crypto-js': specifier: 4.2.1 version: 4.2.1 @@ -60,6 +60,9 @@ importers: eslint: specifier: 8.55.0 version: 8.55.0 + eslint-plugin-vue: + specifier: ^9.19.2 + version: 9.19.2(eslint@8.55.0) lint-staged: specifier: 15.2.0 version: 15.2.0 @@ -75,6 +78,9 @@ importers: unbuild: specifier: 2.0.0 version: 2.0.0(typescript@5.3.3) + vue-eslint-parser: + specifier: ^9.3.2 + version: 9.3.2(eslint@8.55.0) packages/create-soybean: dependencies: @@ -1137,7 +1143,7 @@ packages: ofetch: 1.2.1 dev: false - /@soybeanjs/eslint-config@1.0.9(eslint@8.55.0)(typescript@5.3.3): + /@soybeanjs/eslint-config@1.0.9(eslint-plugin-vue@9.19.2)(eslint@8.55.0)(typescript@5.3.3)(vue-eslint-parser@9.3.2): resolution: {integrity: sha512-gk2dVxLNe6THTbGdcyS8T30EkYPX44fSAkQXhgQZo8R+01GPyvdfILNQjmxNe5mbNUAqc0rdEHcKiA6hEYLrOg==} peerDependencies: eslint: '>=8.40.0' @@ -1167,6 +1173,7 @@ packages: eslint-plugin-n: 16.3.1(eslint@8.55.0) eslint-plugin-prettier: 5.0.1(eslint-config-prettier@9.1.0)(eslint@8.55.0)(prettier@3.1.0) eslint-plugin-unicorn: 49.0.0(eslint@8.55.0) + eslint-plugin-vue: 9.19.2(eslint@8.55.0) globals: 13.23.0 local-pkg: 0.5.0 prettier: 3.1.0 @@ -1174,6 +1181,7 @@ packages: prettier-plugin-json-sort: 0.0.1(prettier@3.1.0) prompts: 2.4.2 typescript: 5.3.3 + vue-eslint-parser: 9.3.2(eslint@8.55.0) transitivePeerDependencies: - '@types/eslint' - eslint-import-resolver-typescript @@ -2589,6 +2597,24 @@ packages: strip-indent: 3.0.0 dev: true + /eslint-plugin-vue@9.19.2(eslint@8.55.0): + resolution: {integrity: sha512-CPDqTOG2K4Ni2o4J5wixkLVNwgctKXFu6oBpVJlpNq7f38lh9I80pRTouZSJ2MAebPJlINU/KTFSXyQfBUlymA==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + eslint: 8.55.0 + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.0.13 + semver: 7.5.4 + vue-eslint-parser: 9.3.2(eslint@8.55.0) + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /eslint-scope@7.2.2: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3590,7 +3616,6 @@ packages: /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: false /log-update@6.0.0: resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==} @@ -5775,6 +5800,24 @@ packages: builtins: 5.0.1 dev: false + /vue-eslint-parser@9.3.2(eslint@8.55.0): + resolution: {integrity: sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + debug: 4.3.4 + eslint: 8.55.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + lodash: 4.17.21 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + dev: true + /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -5847,6 +5890,11 @@ packages: engines: {node: '>=12'} dev: false + /xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + dev: true + /yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} dev: true