feat: 添加 @intlify/eslint-plugin-vue-i18n 支持并更新相关配置
Some checks failed
CI/CD Pipeline / build-and-deploy (push) Has been cancelled
CI/CD Pipeline / playwright (push) Has been cancelled

This commit is contained in:
严浩
2025-11-06 13:37:29 +08:00
parent 076b8f3407
commit ff790c7a3a
3 changed files with 81 additions and 0 deletions

View File

@@ -1,3 +1,4 @@
import vueI18n from '@intlify/eslint-plugin-vue-i18n';
import pluginVitest from '@vitest/eslint-plugin'; import pluginVitest from '@vitest/eslint-plugin';
import skipFormatting from '@vue/eslint-config-prettier/skip-formatting'; import skipFormatting from '@vue/eslint-config-prettier/skip-formatting';
import { import {
@@ -37,6 +38,20 @@ export default defineConfigWithVueTs(
files: ['e2e/**/*.{test,spec}.{js,ts,jsx,tsx}'], files: ['e2e/**/*.{test,spec}.{js,ts,jsx,tsx}'],
}, },
...pluginOxlint.configs['flat/recommended'], ...pluginOxlint.configs['flat/recommended'],
// https://eslint-plugin-vue-i18n.intlify.dev/started.html#getting-started
...vueI18n.configs.recommended,
{
rules: {
'@intlify/vue-i18n/no-raw-text': 'off',
},
settings: {
'vue-i18n': {
localeDir: './src/locales/**/*.json',
messageSyntaxVersion: '^11.0.0',
},
},
},
{ {
plugins: { plugins: {
import: pluginImport, import: pluginImport,

View File

@@ -82,6 +82,7 @@
"@iconify-json/clarity": "^1.2.4", "@iconify-json/clarity": "^1.2.4",
"@iconify-json/line-md": "^1.2.11", "@iconify-json/line-md": "^1.2.11",
"@iconify-json/material-symbols": "^1.2.42", "@iconify-json/material-symbols": "^1.2.42",
"@intlify/eslint-plugin-vue-i18n": "^4.1.0",
"@intlify/unplugin-vue-i18n": "^11.0.0", "@intlify/unplugin-vue-i18n": "^11.0.0",
"@playwright/test": "^1.55.0", "@playwright/test": "^1.55.0",
"@prettier/plugin-oxc": "^0.0.4", "@prettier/plugin-oxc": "^0.0.4",

65
pnpm-lock.yaml generated
View File

@@ -96,6 +96,9 @@ importers:
'@iconify-json/material-symbols': '@iconify-json/material-symbols':
specifier: ^1.2.42 specifier: ^1.2.42
version: 1.2.42 version: 1.2.42
'@intlify/eslint-plugin-vue-i18n':
specifier: ^4.1.0
version: 4.1.0(eslint@9.38.0(jiti@2.6.1))(jsonc-eslint-parser@2.4.1)(vue-eslint-parser@10.2.0(eslint@9.38.0(jiti@2.6.1)))(yaml-eslint-parser@1.3.0)
'@intlify/unplugin-vue-i18n': '@intlify/unplugin-vue-i18n':
specifier: ^11.0.0 specifier: ^11.0.0
version: 11.0.1(@vue/compiler-dom@3.5.22)(eslint@9.38.0(jiti@2.6.1))(rollup@4.52.5)(typescript@5.9.2)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2)) version: 11.0.1(@vue/compiler-dom@3.5.22)(eslint@9.38.0(jiti@2.6.1))(rollup@4.52.5)(typescript@5.9.2)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2))
@@ -463,6 +466,10 @@ packages:
peerDependencies: peerDependencies:
'@babel/core': ^7.0.0-0 '@babel/core': ^7.0.0-0
'@babel/runtime@7.28.4':
resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==}
engines: {node: '>=6.9.0'}
'@babel/template@7.27.2': '@babel/template@7.27.2':
resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
@@ -1452,6 +1459,15 @@ packages:
resolution: {integrity: sha512-whh0trqRsSqVLNEUCwU59pyJZYpU8AmSWl8M3Jz2Mv5ESPP6kFh4juas2NpZ1iCvy7GlNRffUD1xr84gceimjg==} resolution: {integrity: sha512-whh0trqRsSqVLNEUCwU59pyJZYpU8AmSWl8M3Jz2Mv5ESPP6kFh4juas2NpZ1iCvy7GlNRffUD1xr84gceimjg==}
engines: {node: '>= 16'} engines: {node: '>= 16'}
'@intlify/eslint-plugin-vue-i18n@4.1.0':
resolution: {integrity: sha512-MPAr3LGTrkB5CZBHN5eUf4kASUEiSaDM371jADmxNbTL1Ew7IAyCIBGm3+/1sWcvsfVHe4wz8RFoo6FpeQZ4Nw==}
engines: {node: '>=18.0.0'}
peerDependencies:
eslint: ^8.0.0 || ^9.0.0-0
jsonc-eslint-parser: ^2.3.0
vue-eslint-parser: ^10.0.0
yaml-eslint-parser: ^1.2.2
'@intlify/message-compiler@11.1.12': '@intlify/message-compiler@11.1.12':
resolution: {integrity: sha512-Fv9iQSJoJaXl4ZGkOCN1LDM3trzze0AS2zRz2EHLiwenwL6t0Ki9KySYlyr27yVOj5aVz0e55JePO+kELIvfdQ==} resolution: {integrity: sha512-Fv9iQSJoJaXl4ZGkOCN1LDM3trzze0AS2zRz2EHLiwenwL6t0Ki9KySYlyr27yVOj5aVz0e55JePO+kELIvfdQ==}
engines: {node: '>= 16'} engines: {node: '>= 16'}
@@ -3745,6 +3761,10 @@ packages:
resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==}
engines: {node: '>=18'} engines: {node: '>=18'}
globals@16.5.0:
resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==}
engines: {node: '>=18'}
globalthis@1.0.4: globalthis@1.0.4:
resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
@@ -3972,6 +3992,9 @@ packages:
engines: {node: '>=14.16'} engines: {node: '>=14.16'}
hasBin: true hasBin: true
is-language-code@3.1.0:
resolution: {integrity: sha512-zJdQ3QTeLye+iphMeK3wks+vXSRFKh68/Pnlw7aOfApFSEIOhYa8P9vwwa6QrImNNBMJTiL1PpYF0f4BxDuEgA==}
is-map@2.0.3: is-map@2.0.3:
resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
@@ -5332,6 +5355,10 @@ packages:
resolution: {integrity: sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==} resolution: {integrity: sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==}
engines: {node: '>=16.0.0'} engines: {node: '>=16.0.0'}
synckit@0.10.4:
resolution: {integrity: sha512-2SG1TnJGjMkD4+gblONMGYSrwAzYi+ymOitD+Jb/iMYm57nH20PlkVeMQRah3yDMKEa0QQYUF/QPWpdW7C6zNg==}
engines: {node: ^14.18.0 || >=16.0.0}
synckit@0.11.11: synckit@0.11.11:
resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==}
engines: {node: ^14.18.0 || >=16.0.0} engines: {node: ^14.18.0 || >=16.0.0}
@@ -6308,6 +6335,8 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@babel/runtime@7.28.4': {}
'@babel/template@7.27.2': '@babel/template@7.27.2':
dependencies: dependencies:
'@babel/code-frame': 7.27.1 '@babel/code-frame': 7.27.1
@@ -7060,6 +7089,31 @@ snapshots:
'@intlify/message-compiler': 11.1.12 '@intlify/message-compiler': 11.1.12
'@intlify/shared': 11.1.12 '@intlify/shared': 11.1.12
'@intlify/eslint-plugin-vue-i18n@4.1.0(eslint@9.38.0(jiti@2.6.1))(jsonc-eslint-parser@2.4.1)(vue-eslint-parser@10.2.0(eslint@9.38.0(jiti@2.6.1)))(yaml-eslint-parser@1.3.0)':
dependencies:
'@eslint/eslintrc': 3.3.1
'@intlify/core-base': 11.1.12
'@intlify/message-compiler': 11.1.12
debug: 4.4.3
eslint: 9.38.0(jiti@2.6.1)
eslint-compat-utils: 0.6.5(eslint@9.38.0(jiti@2.6.1))
glob: 10.4.5
globals: 16.5.0
ignore: 7.0.5
import-fresh: 3.3.1
is-language-code: 3.1.0
js-yaml: 4.1.0
json5: 2.2.3
jsonc-eslint-parser: 2.4.1
lodash: 4.17.21
parse5: 7.3.0
semver: 7.7.3
synckit: 0.10.4
vue-eslint-parser: 10.2.0(eslint@9.38.0(jiti@2.6.1))
yaml-eslint-parser: 1.3.0
transitivePeerDependencies:
- supports-color
'@intlify/message-compiler@11.1.12': '@intlify/message-compiler@11.1.12':
dependencies: dependencies:
'@intlify/shared': 11.1.12 '@intlify/shared': 11.1.12
@@ -9614,6 +9668,8 @@ snapshots:
globals@15.15.0: {} globals@15.15.0: {}
globals@16.5.0: {}
globalthis@1.0.4: globalthis@1.0.4:
dependencies: dependencies:
define-properties: 1.2.1 define-properties: 1.2.1
@@ -9841,6 +9897,10 @@ snapshots:
dependencies: dependencies:
is-docker: 3.0.0 is-docker: 3.0.0
is-language-code@3.1.0:
dependencies:
'@babel/runtime': 7.28.4
is-map@2.0.3: {} is-map@2.0.3: {}
is-negative-zero@2.0.3: {} is-negative-zero@2.0.3: {}
@@ -11330,6 +11390,11 @@ snapshots:
sync-message-port@1.1.3: {} sync-message-port@1.1.3: {}
synckit@0.10.4:
dependencies:
'@pkgr/core': 0.2.9
tslib: 2.8.1
synckit@0.11.11: synckit@0.11.11:
dependencies: dependencies:
'@pkgr/core': 0.2.9 '@pkgr/core': 0.2.9