build(frontend): обновить UI-зависимости внутри текущих major и закрыть все advisory

Vue Router 4.1.6 -> 4.6.4, Pinia 2.0.33 -> 2.3.1, @vueuse/core 9 -> 13.9.0,
vue-i18n 9.0.0 -> 9.14.5, echarts 5.6 -> 6.1.0, vue-echarts 7 -> 8.1.0.

Pinia 3, Vue Router 5 и Vite 8 сознательно не берутся: ни один из них не даёт
проекту ничего, кроме номера версии, а Vite 8 — это переезд на Rolldown.

vue-i18n и echarts обновлены не ради свежести: `pnpm audit --prod` на базовой
линии показывал 4 moderate, из них GHSA-x8qp-wqqm-57ph (vue-i18n, исправлено в
9.14.5) и GHSA-fgmj-fm8m-jvvx (echarts XSS, исправлено в 6.1.0). Теперь
`pnpm audit --prod` чист.

Четвёртая advisory — GHSA-5m5x-9j46-h678 в el-link — исправленной версии не
имеет, но в продукте недостижима: el-link не используется ни в одном
представлении. pnpm audit анализа достижимости не делает, в отличие от
govulncheck, поэтому это приходится проверять руками.

VueUse 13 сломал сборку: `[auto-import] identifier toRef already defined with
vue`. Причина — авто-импорт всего @vueuse/core, то есть пятисот с лишним имён,
среди которых реэкспорты toRef и toValue. Список сужен до двух функций, которые
действительно используются без явного импорта; src/types/auto-imports.d.ts
сократился с 526 строк до 124.

Заодно включена генерация .eslintrc-auto-import.json: файл подключён через
extends в .eslintrc.cjs, но не генерировался, то есть перечислял глобальные
имена, которых в авто-импорте давно нет. Устаревший список молча отключает
предупреждение eslint об обращении к несуществующему имени.

bundle: 2 604 924 против 2 404 202 на базовой линии (+8%).
typecheck: 0, eslint: 0, go build с встроенным dist: OK.
This commit is contained in:
2026-08-30 07:14:43 +05:00
parent d2dea2debf
commit 7f4cc10d25
6 changed files with 338 additions and 933 deletions
+6 -6
View File
@@ -17,19 +17,19 @@
},
"dependencies": {
"@element-plus/icons-vue": "^2.3.2",
"@vueuse/core": "^9.1.1",
"@vueuse/core": "^13.9.0",
"axios": "^1.20.0",
"copy-to-clipboard": "^3.3.3",
"echarts": "^5.5.1",
"echarts": "^6.1.0",
"element-plus": "^2.14.5",
"nprogress": "^0.2.0",
"path-browserify": "^1.0.1",
"pinia": "^2.0.33",
"pinia": "^2.3.1",
"qrcode.vue": "3.4.1",
"vue": "^3.5.42",
"vue-echarts": "^7.0.3",
"vue-i18n": "9",
"vue-router": "^4.1.6",
"vue-echarts": "^8.1.0",
"vue-i18n": "^9.14.5",
"vue-router": "^4.6.4",
"vuedraggable": "^4.1.0"
},
"devDependencies": {