Files

30 lines
717 B
JSON
Raw Permalink Normal View History

{
"name": "competition-website",
"version": "1.0.0",
"private": true,
"description": "卫星通信与导航应用技术创新赛 - 前端项目",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview"
},
"dependencies": {
"@vueuse/core": "^10.7.0",
"@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "^5.1.12",
"axios": "^1.6.0",
"element-plus": "^2.5.0",
"pinia": "^2.1.0",
"sortablejs": "^1.15.0",
"spark-md5": "^3.0.2",
"vue": "^3.4.0",
"vue-router": "^4.3.0"
},
"devDependencies": {
build(deps): vite 5.4.21 → 8.3.4(含 plugin-vue 6)+ 修 CSS 拆块导致的主题/悬停回归 安全:消掉 2 条 high。vite 跨 3 个 major(5→8,rollup→rolldown); @vitejs/plugin-vue 5.2.4 → 6.0.10(peer 覆盖 vite ^5||^6||^7||^8); 锁文件同步刷新使 nanoid / postcss / source-map-js 三条一并消解。 🔴 升级引入的 CSS 顺序回归(本轮实测发现并修复,不是理论风险): rolldown 把 Element Plus 基础样式拆成独立 css-*.css 块,且 index.html 中 排在入口 CSS **之后**;旧 rollup 把 EP 与 global.css 合并在同一入口 CSS, EP 在前、项目在后。两者覆盖语句特异性相同 ⇒ 谁在后谁赢 ⇒ 新顺序下反被 EP 压过。 取证:生产旧包 index-CVAb-2kd.css 内 EP 规则 @27768 < 项目覆盖 @57506(旧=正确); 新包 index-rMbH9bHe.css(先)vs css-CNpL_Sag.css(后)。 · --el-color-primary 退回 #409eff ⇒ 登录按钮由深藏青变 Element 亮蓝; · 文字型按钮 hover 底退回不透明 #f5f7fa ⇒ 此前修好的「白底白字」缺陷复现。 修法=让覆盖与加载顺序无关(⛔ 不是调顺序,顺序由打包器决定不可靠): · :root → html:root (0,0,1,1 > 0,0,1,0) · .el-button.is-text:not(.is-disabled):hover/:focus 加 :root 前缀(4 → 5 个类级) 验证(四级对照,全部可复现): 1. 顺序单变量实验(两组页面除 <link> 顺序外完全相同): 修复前 A=SAME? → primary #1a3a5c vs #409eff、hover rgba(...) vs #f5f7fa(DIFF); 修复后两种顺序计算样式完全相同(PASS)。 2. 与生产旧包(旧 vite5 构建)逐项比对 computed style:primary / light-3 / 主按钮底色 / hover 底色 全部 SAME。 3. 登录页截图 sha256 与生产旧包**逐字节相同**(f5052aa7260b7b47)—— 修复前为 9f074bb1c44329b3。 4. 真 chromium 加载构建产物(vite preview):/login、/admin 首屏、 成绩管理、选手管理全部 0 console error / 0 pageerror; TDZ 静态门禁 38 文件 PASS。 产物:入口 index-DTFvE02d.js · 157 资源 · 73 个 .gz(两次构建 hash 一致=可复现)。 全量电池 57 步:退出码 0 · FAIL 0 · SKIP 0 · 未运行 0(1 项 N/A 为数据前提不成立)。
2026-10-21 12:05:29 +08:00
"@vitejs/plugin-vue": "^6.0.10",
"unplugin-vue-components": "^32.1.0",
build(deps): vite 5.4.21 → 8.3.4(含 plugin-vue 6)+ 修 CSS 拆块导致的主题/悬停回归 安全:消掉 2 条 high。vite 跨 3 个 major(5→8,rollup→rolldown); @vitejs/plugin-vue 5.2.4 → 6.0.10(peer 覆盖 vite ^5||^6||^7||^8); 锁文件同步刷新使 nanoid / postcss / source-map-js 三条一并消解。 🔴 升级引入的 CSS 顺序回归(本轮实测发现并修复,不是理论风险): rolldown 把 Element Plus 基础样式拆成独立 css-*.css 块,且 index.html 中 排在入口 CSS **之后**;旧 rollup 把 EP 与 global.css 合并在同一入口 CSS, EP 在前、项目在后。两者覆盖语句特异性相同 ⇒ 谁在后谁赢 ⇒ 新顺序下反被 EP 压过。 取证:生产旧包 index-CVAb-2kd.css 内 EP 规则 @27768 < 项目覆盖 @57506(旧=正确); 新包 index-rMbH9bHe.css(先)vs css-CNpL_Sag.css(后)。 · --el-color-primary 退回 #409eff ⇒ 登录按钮由深藏青变 Element 亮蓝; · 文字型按钮 hover 底退回不透明 #f5f7fa ⇒ 此前修好的「白底白字」缺陷复现。 修法=让覆盖与加载顺序无关(⛔ 不是调顺序,顺序由打包器决定不可靠): · :root → html:root (0,0,1,1 > 0,0,1,0) · .el-button.is-text:not(.is-disabled):hover/:focus 加 :root 前缀(4 → 5 个类级) 验证(四级对照,全部可复现): 1. 顺序单变量实验(两组页面除 <link> 顺序外完全相同): 修复前 A=SAME? → primary #1a3a5c vs #409eff、hover rgba(...) vs #f5f7fa(DIFF); 修复后两种顺序计算样式完全相同(PASS)。 2. 与生产旧包(旧 vite5 构建)逐项比对 computed style:primary / light-3 / 主按钮底色 / hover 底色 全部 SAME。 3. 登录页截图 sha256 与生产旧包**逐字节相同**(f5052aa7260b7b47)—— 修复前为 9f074bb1c44329b3。 4. 真 chromium 加载构建产物(vite preview):/login、/admin 首屏、 成绩管理、选手管理全部 0 console error / 0 pageerror; TDZ 静态门禁 38 文件 PASS。 产物:入口 index-DTFvE02d.js · 157 资源 · 73 个 .gz(两次构建 hash 一致=可复现)。 全量电池 57 步:退出码 0 · FAIL 0 · SKIP 0 · 未运行 0(1 项 N/A 为数据前提不成立)。
2026-10-21 12:05:29 +08:00
"vite": "^8.3.4"
}
}