2 Commits

Author SHA1 Message Date
7c79e486a2 chore(deps): update lint dependencies
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
CI/CD Pipeline / playwright (push) Successful in 2m57s
CI/CD Pipeline / build-and-deploy (push) Failing after 2m19s
2025-11-04 01:06:38 +08:00
严浩
5bbbf488fe feat(eslint): 添加 jsonc 插件并启用 JSON 文件键排序规则
Some checks failed
CI/CD Pipeline / playwright (push) Successful in 2m54s
CI/CD Pipeline / build-and-deploy (push) Failing after 4m9s
新增 `eslint-plugin-jsonc` 插件,并在 `.json` 文件中启用 `jsonc/sort-keys` 规则,
以确保本地化文件中的键名按字母顺序排列。此举有助于减少多人协作时的合并冲突,
同时提升代码一致性和可维护性。

此外,调整了 VS Code 配置项顺序以优化读写逻辑,并更新相关依赖版本。
2025-11-04 00:52:22 +08:00
6 changed files with 161 additions and 86 deletions

View File

@@ -6,22 +6,23 @@
"source.fixAll.oxc": "explicit",
"source.organizeImports": "never"
},
"eslint.enable": true,
"stylelint.enable": true,
"oxc.enable": true,
"editor.formatOnSave": true,
"stylelint.enable": true,
"stylelint.validate": ["css", "less", "postcss", "scss", "vue"],
"scss.lint.unknownAtRules": "ignore",
"css.lint.unknownAtRules": "ignore",
"less.lint.unknownAtRules": "ignore",
"eslint.enable": true,
"oxc.enable": true,
"[vue]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"editor.defaultFormatter": "esbenp.prettier-vscode",
// >>>>>
"i18n-ally.readonly": true,
"i18n-ally.namespace": false /* @intlify/unplugin-vue-i18n */,
"i18n-ally.localesPaths": ["src/locales/demo", "src/locales"],
// https://github.com/lokalise/i18n-ally/wiki/Path-Matcher

View File

@@ -1,15 +1,17 @@
import pluginImport from 'eslint-plugin-import';
import { globalIgnores } from 'eslint/config';
import pluginVitest from '@vitest/eslint-plugin';
import skipFormatting from '@vue/eslint-config-prettier/skip-formatting';
import {
configureVueProject,
defineConfigWithVueTs,
vueTsConfigs,
configureVueProject,
} from '@vue/eslint-config-typescript';
import pluginVue from 'eslint-plugin-vue';
import pluginVitest from '@vitest/eslint-plugin';
import pluginPlaywright from 'eslint-plugin-playwright';
import pluginImport from 'eslint-plugin-import';
import pluginJsonc from 'eslint-plugin-jsonc';
import pluginOxlint from 'eslint-plugin-oxlint';
import skipFormatting from '@vue/eslint-config-prettier/skip-formatting';
import pluginPlaywright from 'eslint-plugin-playwright';
import pluginVue from 'eslint-plugin-vue';
import { globalIgnores } from 'eslint/config';
import jsoncParser from 'jsonc-eslint-parser';
configureVueProject({ scriptLangs: ['ts', 'tsx'] });
// More info at https://github.com/vuejs/eslint-config-typescript/#advanced-setup
@@ -52,6 +54,19 @@ export default defineConfigWithVueTs(
},
},
{
/**
* 启用 sort-keys 规则以强制对象键按字母顺序排序
* 原因:
* 1. 减少多人协作时的合并冲突
* 2. 保持代码一致性,提高可维护性
*/
files: ['src/locales/**/*.json'],
languageOptions: { parser: jsoncParser },
plugins: { jsonc: pluginJsonc },
rules: { 'jsonc/sort-keys': 'error' },
},
{
rules: {
'@typescript-eslint/no-explicit-any': 'off',

View File

@@ -103,7 +103,8 @@
"consola": "^3.4.2",
"eslint": "^9.35.0",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-oxlint": "~1.23.0",
"eslint-plugin-jsonc": "^2.21.0",
"eslint-plugin-oxlint": "~1.25.0",
"eslint-plugin-playwright": "^2.2.2",
"eslint-plugin-vue": "~10.5.0",
"happy-dom": "^20.0.1",
@@ -113,7 +114,7 @@
"lint-staged": "^16.1.6",
"npm-run-all2": "^8.0.4",
"nprogress": "^0.2.0",
"oxlint": "~1.23.0",
"oxlint": "~1.25.0",
"postcss-html": "^1.8.0",
"prettier": "3.6.2",
"rollup": "^4.52.5",

194
pnpm-lock.yaml generated
View File

@@ -140,7 +140,7 @@ importers:
version: 5.1.1(vite@7.1.12(@types/node@22.18.13)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2))
'@vitest/eslint-plugin':
specifier: ^1.3.9
version: 1.3.23(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.2)(vitest@3.2.4(@types/node@22.18.13)(happy-dom@20.0.7)(jiti@2.6.1)(jsdom@27.0.1)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))
version: 1.4.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.2)(vitest@3.2.4(@types/node@22.18.13)(happy-dom@20.0.7)(jiti@2.6.1)(jsdom@27.0.1)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))
'@vue/eslint-config-prettier':
specifier: ^10.2.0
version: 10.2.0(eslint@9.38.0(jiti@2.6.1))(prettier@3.6.2)
@@ -162,9 +162,12 @@ importers:
eslint-plugin-import:
specifier: ^2.32.0
version: 2.32.0(@typescript-eslint/parser@8.43.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.2))(eslint@9.38.0(jiti@2.6.1))
eslint-plugin-jsonc:
specifier: ^2.21.0
version: 2.21.0(eslint@9.38.0(jiti@2.6.1))
eslint-plugin-oxlint:
specifier: ~1.23.0
version: 1.23.0
specifier: ~1.25.0
version: 1.25.0
eslint-plugin-playwright:
specifier: ^2.2.2
version: 2.2.2(eslint@9.38.0(jiti@2.6.1))
@@ -185,7 +188,7 @@ importers:
version: 27.0.1
lint-staged:
specifier: ^16.1.6
version: 16.2.4
version: 16.2.6
npm-run-all2:
specifier: ^8.0.4
version: 8.0.4
@@ -193,8 +196,8 @@ importers:
specifier: ^0.2.0
version: 0.2.0
oxlint:
specifier: ~1.23.0
version: 1.23.0
specifier: ~1.25.0
version: 1.25.0
postcss-html:
specifier: ^1.8.0
version: 1.8.0
@@ -266,7 +269,7 @@ importers:
version: 7.1.12(@types/node@22.18.13)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)
vite-plugin-checker:
specifier: ^0.11.0
version: 0.11.0(eslint@9.38.0(jiti@2.6.1))(meow@13.2.0)(optionator@0.9.4)(oxlint@1.23.0)(stylelint@16.25.0(typescript@5.9.2))(typescript@5.9.2)(vite@7.1.12(@types/node@22.18.13)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.1(typescript@5.9.2))
version: 0.11.0(eslint@9.38.0(jiti@2.6.1))(meow@13.2.0)(optionator@0.9.4)(oxlint@1.25.0)(stylelint@16.25.0(typescript@5.9.2))(typescript@5.9.2)(vite@7.1.12(@types/node@22.18.13)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.1(typescript@5.9.2))
vite-plugin-fake-server:
specifier: ^2.2.0
version: 2.2.0
@@ -1776,43 +1779,43 @@ packages:
cpu: [x64]
os: [win32]
'@oxlint/darwin-arm64@1.23.0':
resolution: {integrity: sha512-sbxoftgEMKmZQO7O4wHR9Rs7MfiHa2UH2x4QJDoc4LXqSCsI4lUIJbFQ05vX+zOUbt7CQMPdxEzExd4DqeKY2w==}
'@oxlint/darwin-arm64@1.25.0':
resolution: {integrity: sha512-OLx4XyUv5SO7k8y5FzJIoTKan+iKK53T1Ws8fBIl4zblUIWI66ZIqSVG2A2rxOBA7XfINqCz8UipGzOW9yzKcg==}
cpu: [arm64]
os: [darwin]
'@oxlint/darwin-x64@1.23.0':
resolution: {integrity: sha512-PjByWr1TlwHQiOqEc8CPyXCT4wnujSK3n9l1m4un0Eh0uLJEDG5WM9tyDWOGuakC0Ika9/SMp0HDRg3ySchRRA==}
'@oxlint/darwin-x64@1.25.0':
resolution: {integrity: sha512-srndNPiliA0rchYKqYfOdqA9kqyVQ6YChK3XJe9Lxo/YG8tTJ5K65g2A5SHTT2s1Nm5DnQa5AKZH7w+7KI/m8A==}
cpu: [x64]
os: [darwin]
'@oxlint/linux-arm64-gnu@1.23.0':
resolution: {integrity: sha512-sWlCwQ6xKeKC08qU3SfozqpRGCLJiO/onPYFJKEHbjzHkFp+OubOacFaT4ePcka28jCU1TvQ7Gi5BVQRncr0Xg==}
'@oxlint/linux-arm64-gnu@1.25.0':
resolution: {integrity: sha512-W9+DnHDbygprpGV586BolwWES+o2raOcSJv404nOFPQjWZ09efG24nuXrg/fpyoMQb4YoW2W1fvlnyMVU+ADcw==}
cpu: [arm64]
os: [linux]
'@oxlint/linux-arm64-musl@1.23.0':
resolution: {integrity: sha512-MPkmSiezuVgjMbzDSkRhENdnb038JOI+OTpBrOho2crbCAuqSRvyFwkMRhncJGZskzo1yeKxrKXB8T83ofmSXw==}
'@oxlint/linux-arm64-musl@1.25.0':
resolution: {integrity: sha512-1tIMpQhKlItm7uKzs3lluG7KorZR5ItoNKd1iFYF/IPmZ+i0/iuZ7MVWXRjBcgQMhMYSdfZpSVEdFKcFz2HDxA==}
cpu: [arm64]
os: [linux]
'@oxlint/linux-x64-gnu@1.23.0':
resolution: {integrity: sha512-F6H9wmLfjBoNqtsgyg3P9abLnkVjNbCAnISKdRtDl7HvkMs4s/eU8np9+tSnqPeKOTBhkS+h/VSWgPGZTqIWQA==}
'@oxlint/linux-x64-gnu@1.25.0':
resolution: {integrity: sha512-xVkmk/zkIulc5o0OUWY04DyBfKotnq9+60O9I5c0DpdKAELVLhZkLmct0apx3jAX6Z/3yYPzhc6Lw1Ia3jU3VQ==}
cpu: [x64]
os: [linux]
'@oxlint/linux-x64-musl@1.23.0':
resolution: {integrity: sha512-Xra0Cow35mAku8mbUbviPRalTU4Ct6MXQ1Eue8GmN4HFkjosrNa5qfy7QkJBqzjiI+JdnHxPXwackGn92/XOQw==}
'@oxlint/linux-x64-musl@1.25.0':
resolution: {integrity: sha512-IeO10dZosJV58YzN0gckhRYac+FM9s5VCKUx2ghgbKR91z/bpSRcRl8Sy5cWTkcVwu3ZTikhK8aXC6j7XIqKNw==}
cpu: [x64]
os: [linux]
'@oxlint/win32-arm64@1.23.0':
resolution: {integrity: sha512-FR+I+uGD3eFzTfBw87QRr+Y1jBYil3TqPM0wkSvuf3gOJTEXAfSkh9QHCgQqrseW3HDW7YJJ8ty1+sU31H/N4g==}
'@oxlint/win32-arm64@1.25.0':
resolution: {integrity: sha512-mpdiXZm2oNuSQAbTEPRDuSeR6v1DCD7Cl/xouR2ggHZu3AKZ4XYmm29hyrzIxrYVoQ/5j+182TGdOpGYn9xQJg==}
cpu: [arm64]
os: [win32]
'@oxlint/win32-x64@1.23.0':
resolution: {integrity: sha512-/oX0b26YIC1OgS5B+G8Ux1Vs/PIjOP4CBRzsPpYr0T+RoboJ3ZuV32bztLRggJKQqIlozcqiRo9fl/UMOMp8kQ==}
'@oxlint/win32-x64@1.25.0':
resolution: {integrity: sha512-opoIACOkcFloWQO6dubBLbcWwW52ML8+3deFdr0WE0PeM9UXdLB0jRMuLsEnplmBoy9TRvmxDJ+Pw8xc2PsOfQ==}
cpu: [x64]
os: [win32]
@@ -2393,12 +2396,12 @@ packages:
vite: ^5.0.0 || ^6.0.0 || ^7.0.0
vue: ^3.2.25
'@vitest/eslint-plugin@1.3.23':
resolution: {integrity: sha512-kp1vjoJTdVf8jWdzr/JpHIPfh3HMR6JBr2p7XuH4YNx0UXmV4XWdgzvCpAmH8yb39Gry31LULiuBcuhyc/OqkQ==}
'@vitest/eslint-plugin@1.4.0':
resolution: {integrity: sha512-TMzJ0Vqdsc71stblzI0ZdqSnt6Bp4mJ+amD3Hv3qhKK82hBUnznYfnLwA80gdGfe5V24ysndMOoSGrol6fyvbA==}
engines: {node: '>=18'}
peerDependencies:
eslint: '>= 8.57.0'
typescript: '>= 5.0.0'
eslint: '>=8.57.0'
typescript: '>=5.0.0'
vitest: '*'
peerDependenciesMeta:
typescript:
@@ -3005,8 +3008,8 @@ packages:
resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==}
engines: {node: '>=18'}
cli-truncate@5.1.0:
resolution: {integrity: sha512-7JDGG+4Zp0CsknDCedl0DYdaeOhc46QNpXi3NLQblkZpXXgA6LncLDUUyvrjSvZeF3VRQa+KiMGomazQrC1V8g==}
cli-truncate@5.1.1:
resolution: {integrity: sha512-SroPvNHxUnk+vIW/dOSfNqdy1sPEFkrTk6TUtqLCnBlo3N7TNYYkzzN7uSD6+jVjrdO4+p8nH7JzH6cIvUem6A==}
engines: {node: '>=20'}
cliui@8.0.1:
@@ -3048,8 +3051,8 @@ packages:
resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
engines: {node: '>=16'}
commander@14.0.1:
resolution: {integrity: sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A==}
commander@14.0.2:
resolution: {integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==}
engines: {node: '>=20'}
commander@2.20.3:
@@ -3261,6 +3264,10 @@ packages:
resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
engines: {node: '>=8'}
diff-sequences@27.5.1:
resolution: {integrity: sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==}
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
dir-glob@3.0.1:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
engines: {node: '>=8'}
@@ -3405,6 +3412,12 @@ packages:
engines: {node: '>=6.0'}
hasBin: true
eslint-compat-utils@0.6.5:
resolution: {integrity: sha512-vAUHYzue4YAa2hNACjB8HvUQj5yehAZgiClyFVVom9cP8z5NSFq3PwB/TtJslN2zAMgRX6FCFCjYBbQh71g5RQ==}
engines: {node: '>=12'}
peerDependencies:
eslint: '>=6.0.0'
eslint-config-prettier@10.1.8:
resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==}
hasBin: true
@@ -3414,6 +3427,17 @@ packages:
eslint-import-resolver-node@0.3.9:
resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
eslint-json-compat-utils@0.2.1:
resolution: {integrity: sha512-YzEodbDyW8DX8bImKhAcCeu/L31Dd/70Bidx2Qex9OFUtgzXLqtfWL4Hr5fM/aCCB8QUZLuJur0S9k6UfgFkfg==}
engines: {node: '>=12'}
peerDependencies:
'@eslint/json': '*'
eslint: '*'
jsonc-eslint-parser: ^2.4.0
peerDependenciesMeta:
'@eslint/json':
optional: true
eslint-module-utils@2.12.1:
resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==}
engines: {node: '>=4'}
@@ -3445,8 +3469,14 @@ packages:
'@typescript-eslint/parser':
optional: true
eslint-plugin-oxlint@1.23.0:
resolution: {integrity: sha512-YT/ObCQMluSHVEqDJPwrVLERkUUQnmcRYYQbB7h6t2P4243WE3Z1UmUcPy1Q6vSVP/U7vw5affptlGV2RizDuw==}
eslint-plugin-jsonc@2.21.0:
resolution: {integrity: sha512-HttlxdNG5ly3YjP1cFMP62R4qKLxJURfBZo2gnMY+yQojZxkLyOpY1H1KRTKBmvQeSG9pIpSGEhDjE17vvYosg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: '>=6.0.0'
eslint-plugin-oxlint@1.25.0:
resolution: {integrity: sha512-grS4KdR9FAxoQC+wMkepeQHL4osMhoYfUI11Pot6Gitqr4wWi+JZrX0Shr8Bs9fjdWhEjtaZIV6cr4mbfytmyw==}
eslint-plugin-playwright@2.2.2:
resolution: {integrity: sha512-j0jKpndIPOXRRP9uMkwb9l/nSmModOU3452nrFdgFJoEv/435J1onk8+aITzjDW8DfypxgmVaDMdmVIa6F7I0w==}
@@ -4256,13 +4286,13 @@ packages:
linkify-it@5.0.0:
resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==}
lint-staged@16.2.4:
resolution: {integrity: sha512-Pkyr/wd90oAyXk98i/2KwfkIhoYQUMtss769FIT9hFM5ogYZwrk+GRE46yKXSg2ZGhcJ1p38Gf5gmI5Ohjg2yg==}
lint-staged@16.2.6:
resolution: {integrity: sha512-s1gphtDbV4bmW1eylXpVMk2u7is7YsrLl8hzrtvC70h4ByhcMLZFY01Fx05ZUDNuv1H8HO4E+e2zgejV1jVwNw==}
engines: {node: '>=20.17'}
hasBin: true
listr2@9.0.4:
resolution: {integrity: sha512-1wd/kpAdKRLwv7/3OKC8zZ5U8e/fajCfWMxacUvB79S5nLrYGPtUI/8chMQhn3LQjsRVErTb9i1ECAwW0ZIHnQ==}
listr2@9.0.5:
resolution: {integrity: sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==}
engines: {node: '>=20.0.0'}
local-pkg@0.5.1:
@@ -4582,12 +4612,12 @@ packages:
oxc-resolver@11.8.4:
resolution: {integrity: sha512-qpimS3tHHEf+kgESMAme+q+rj7aCzMya00u9YdKOKyX2o7q4lozjPo6d7ZTTi979KHEcVOPWdNTueAKdeNq72w==}
oxlint@1.23.0:
resolution: {integrity: sha512-cLVdSE7Bza8npm+PffU0oufs15+M5uSMbQn0k2fJCayWU0xqQ3dyA3w9tEk8lgNOk1j1VJEdYctz64Vik8VG1w==}
oxlint@1.25.0:
resolution: {integrity: sha512-O6iJ9xeuy9eQCi8/EghvsNO6lzSaUPs0FR1uLy51Exp3RkVpjvJKyPPhd9qv65KLnfG/BNd2HE/rH0NbEfVVzA==}
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
peerDependencies:
oxlint-tsgolint: '>=0.2.0'
oxlint-tsgolint: '>=0.4.0'
peerDependenciesMeta:
oxlint-tsgolint:
optional: true
@@ -7347,28 +7377,28 @@ snapshots:
'@oxc-resolver/binding-win32-x64-msvc@11.8.4':
optional: true
'@oxlint/darwin-arm64@1.23.0':
'@oxlint/darwin-arm64@1.25.0':
optional: true
'@oxlint/darwin-x64@1.23.0':
'@oxlint/darwin-x64@1.25.0':
optional: true
'@oxlint/linux-arm64-gnu@1.23.0':
'@oxlint/linux-arm64-gnu@1.25.0':
optional: true
'@oxlint/linux-arm64-musl@1.23.0':
'@oxlint/linux-arm64-musl@1.25.0':
optional: true
'@oxlint/linux-x64-gnu@1.23.0':
'@oxlint/linux-x64-gnu@1.25.0':
optional: true
'@oxlint/linux-x64-musl@1.23.0':
'@oxlint/linux-x64-musl@1.25.0':
optional: true
'@oxlint/win32-arm64@1.23.0':
'@oxlint/win32-arm64@1.25.0':
optional: true
'@oxlint/win32-x64@1.23.0':
'@oxlint/win32-x64@1.25.0':
optional: true
'@parcel/watcher-android-arm64@2.5.1':
@@ -7982,7 +8012,7 @@ snapshots:
vite: 7.1.12(@types/node@22.18.13)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)
vue: 3.5.22(typescript@5.9.2)
'@vitest/eslint-plugin@1.3.23(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.2)(vitest@3.2.4(@types/node@22.18.13)(happy-dom@20.0.7)(jiti@2.6.1)(jsdom@27.0.1)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))':
'@vitest/eslint-plugin@1.4.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.2)(vitest@3.2.4(@types/node@22.18.13)(happy-dom@20.0.7)(jiti@2.6.1)(jsdom@27.0.1)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))':
dependencies:
'@typescript-eslint/scope-manager': 8.46.2
'@typescript-eslint/utils': 8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.2)
@@ -8774,7 +8804,7 @@ snapshots:
dependencies:
restore-cursor: 5.1.0
cli-truncate@5.1.0:
cli-truncate@5.1.1:
dependencies:
slice-ansi: 7.1.2
string-width: 8.1.0
@@ -8815,7 +8845,7 @@ snapshots:
commander@11.1.0: {}
commander@14.0.1: {}
commander@14.0.2: {}
commander@2.20.3: {}
@@ -9006,6 +9036,8 @@ snapshots:
detect-libc@2.1.2: {}
diff-sequences@27.5.1: {}
dir-glob@3.0.1:
dependencies:
path-type: 4.0.0
@@ -9268,6 +9300,11 @@ snapshots:
optionalDependencies:
source-map: 0.6.1
eslint-compat-utils@0.6.5(eslint@9.38.0(jiti@2.6.1)):
dependencies:
eslint: 9.38.0(jiti@2.6.1)
semver: 7.7.3
eslint-config-prettier@10.1.8(eslint@9.38.0(jiti@2.6.1)):
dependencies:
eslint: 9.38.0(jiti@2.6.1)
@@ -9280,6 +9317,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
eslint-json-compat-utils@0.2.1(eslint@9.38.0(jiti@2.6.1))(jsonc-eslint-parser@2.4.0):
dependencies:
eslint: 9.38.0(jiti@2.6.1)
esquery: 1.6.0
jsonc-eslint-parser: 2.4.0
eslint-module-utils@2.12.1(@typescript-eslint/parser@8.43.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.38.0(jiti@2.6.1)):
dependencies:
debug: 3.2.7
@@ -9319,7 +9362,22 @@ snapshots:
- eslint-import-resolver-webpack
- supports-color
eslint-plugin-oxlint@1.23.0:
eslint-plugin-jsonc@2.21.0(eslint@9.38.0(jiti@2.6.1)):
dependencies:
'@eslint-community/eslint-utils': 4.9.0(eslint@9.38.0(jiti@2.6.1))
diff-sequences: 27.5.1
eslint: 9.38.0(jiti@2.6.1)
eslint-compat-utils: 0.6.5(eslint@9.38.0(jiti@2.6.1))
eslint-json-compat-utils: 0.2.1(eslint@9.38.0(jiti@2.6.1))(jsonc-eslint-parser@2.4.0)
espree: 10.4.0
graphemer: 1.4.0
jsonc-eslint-parser: 2.4.0
natural-compare: 1.4.0
synckit: 0.11.11
transitivePeerDependencies:
- '@eslint/json'
eslint-plugin-oxlint@1.25.0:
dependencies:
jsonc-parser: 3.3.1
@@ -10119,19 +10177,19 @@ snapshots:
dependencies:
uc.micro: 2.1.0
lint-staged@16.2.4:
lint-staged@16.2.6:
dependencies:
commander: 14.0.1
listr2: 9.0.4
commander: 14.0.2
listr2: 9.0.5
micromatch: 4.0.8
nano-spawn: 2.0.0
pidtree: 0.6.0
string-argv: 0.3.2
yaml: 2.8.1
listr2@9.0.4:
listr2@9.0.5:
dependencies:
cli-truncate: 5.1.0
cli-truncate: 5.1.1
colorette: 2.0.20
eventemitter3: 5.0.1
log-update: 6.1.0
@@ -10525,16 +10583,16 @@ snapshots:
'@oxc-resolver/binding-win32-ia32-msvc': 11.8.4
'@oxc-resolver/binding-win32-x64-msvc': 11.8.4
oxlint@1.23.0:
oxlint@1.25.0:
optionalDependencies:
'@oxlint/darwin-arm64': 1.23.0
'@oxlint/darwin-x64': 1.23.0
'@oxlint/linux-arm64-gnu': 1.23.0
'@oxlint/linux-arm64-musl': 1.23.0
'@oxlint/linux-x64-gnu': 1.23.0
'@oxlint/linux-x64-musl': 1.23.0
'@oxlint/win32-arm64': 1.23.0
'@oxlint/win32-x64': 1.23.0
'@oxlint/darwin-arm64': 1.25.0
'@oxlint/darwin-x64': 1.25.0
'@oxlint/linux-arm64-gnu': 1.25.0
'@oxlint/linux-arm64-musl': 1.25.0
'@oxlint/linux-x64-gnu': 1.25.0
'@oxlint/linux-x64-musl': 1.25.0
'@oxlint/win32-arm64': 1.25.0
'@oxlint/win32-x64': 1.25.0
p-limit@3.1.0:
dependencies:
@@ -11765,7 +11823,7 @@ snapshots:
- tsx
- yaml
vite-plugin-checker@0.11.0(eslint@9.38.0(jiti@2.6.1))(meow@13.2.0)(optionator@0.9.4)(oxlint@1.23.0)(stylelint@16.25.0(typescript@5.9.2))(typescript@5.9.2)(vite@7.1.12(@types/node@22.18.13)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.1(typescript@5.9.2)):
vite-plugin-checker@0.11.0(eslint@9.38.0(jiti@2.6.1))(meow@13.2.0)(optionator@0.9.4)(oxlint@1.25.0)(stylelint@16.25.0(typescript@5.9.2))(typescript@5.9.2)(vite@7.1.12(@types/node@22.18.13)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.1(typescript@5.9.2)):
dependencies:
'@babel/code-frame': 7.27.1
chokidar: 4.0.3
@@ -11780,7 +11838,7 @@ snapshots:
eslint: 9.38.0(jiti@2.6.1)
meow: 13.2.0
optionator: 0.9.4
oxlint: 1.23.0
oxlint: 1.25.0
stylelint: 16.25.0(typescript@5.9.2)
typescript: 5.9.2
vue-tsc: 3.1.1(typescript@5.9.2)

View File

@@ -1,10 +1,10 @@
{
"page": {
"i18n-demo": {
"title": "Vue I18n Demo",
"current-language": "Current Language",
"change-language": "Change Language",
"hello": "Hello, {name}!"
"current-language": "Current Language",
"hello": "Hello, {name}!",
"title": "Vue I18n Demo"
}
}
}

View File

@@ -1,10 +1,10 @@
{
"page": {
"i18n-demo": {
"title": "Vue I18n 示例",
"current-language": "当前语言",
"change-language": "切换语言",
"hello": "你好, {name}"
"current-language": "当前语言",
"hello": "你好, {name}",
"title": "Vue I18n 示例"
}
}
}