7f4cc10d25
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.
78 lines
2.3 KiB
JSON
78 lines
2.3 KiB
JSON
{
|
|
"name": "hy2xs-admin",
|
|
"version": "0.0.0",
|
|
"private": true,
|
|
"license": "AGPL-3.0-only",
|
|
"description": "HY2XS admin",
|
|
"author": "HY2XS",
|
|
"packageManager": "pnpm@9.15.9",
|
|
"scripts": {
|
|
"dev": "vite serve --mode development",
|
|
"typecheck": "vue-tsc --noEmit",
|
|
"build:prod": "vite build --mode production",
|
|
"verify": "pnpm run typecheck && pnpm run build:prod",
|
|
"lint:eslint": "eslint --fix --ext .ts,.js,.vue ./src ",
|
|
"lint:prettier": "prettier --write \"**/*.{js,cjs,ts,json,tsx,css,less,scss,vue,html,md}\"",
|
|
"lint:stylelint": "stylelint \"**/*.{css,scss,vue}\" --fix"
|
|
},
|
|
"dependencies": {
|
|
"@element-plus/icons-vue": "^2.3.2",
|
|
"@vueuse/core": "^13.9.0",
|
|
"axios": "^1.20.0",
|
|
"copy-to-clipboard": "^3.3.3",
|
|
"echarts": "^6.1.0",
|
|
"element-plus": "^2.14.5",
|
|
"nprogress": "^0.2.0",
|
|
"path-browserify": "^1.0.1",
|
|
"pinia": "^2.3.1",
|
|
"qrcode.vue": "3.4.1",
|
|
"vue": "^3.5.42",
|
|
"vue-echarts": "^8.1.0",
|
|
"vue-i18n": "^9.14.5",
|
|
"vue-router": "^4.6.4",
|
|
"vuedraggable": "^4.1.0"
|
|
},
|
|
"devDependencies": {
|
|
"@iconify-json/ep": "^1.1.8",
|
|
"@types/nprogress": "^0.2.0",
|
|
"@types/path-browserify": "^1.0.0",
|
|
"@typescript-eslint/eslint-plugin": "^5.51.0",
|
|
"@typescript-eslint/parser": "^5.51.0",
|
|
"@vitejs/plugin-vue": "^4.0.0",
|
|
"autoprefixer": "^10.4.13",
|
|
"eslint": "^8.34.0",
|
|
"eslint-config-prettier": "^8.8.0",
|
|
"eslint-plugin-prettier": "^4.2.1",
|
|
"eslint-plugin-vue": "^9.9.0",
|
|
"postcss": "^8.5.26",
|
|
"postcss-html": "^1.5.0",
|
|
"postcss-scss": "^4.0.6",
|
|
"prettier": "^2.8.7",
|
|
"sass": "^1.103.1",
|
|
"stylelint": "^15.5.0",
|
|
"stylelint-config-html": "^1.1.0",
|
|
"stylelint-config-recess-order": "^4.0.0",
|
|
"stylelint-config-recommended-scss": "^9.0.1",
|
|
"stylelint-config-recommended-vue": "^1.4.0",
|
|
"stylelint-config-standard": "^32.0.0",
|
|
"stylelint-config-standard-scss": "^8.0.0",
|
|
"typescript": "^5.9.3",
|
|
"unocss": "^0.50.1",
|
|
"unplugin-auto-import": "^0.13.0",
|
|
"unplugin-icons": "^0.15.1",
|
|
"unplugin-vue-components": "^0.23.0",
|
|
"vite": "^4.3.1",
|
|
"vite-plugin-svg-icons": "^2.0.1",
|
|
"vue-tsc": "^3.3.11"
|
|
},
|
|
"pnpm": {
|
|
"overrides": {
|
|
"lodash": ">=4.18.1",
|
|
"lodash-es": ">=4.18.1"
|
|
}
|
|
},
|
|
"engines": {
|
|
"node": ">=18.12.0"
|
|
}
|
|
}
|