fix: 修复 admin-ui SCSS 变量导入导致的生产白屏 (#27) #34

Closed
opened 2026-08-23 23:41:41 +08:00 by ila · 0 comments
Owner

状态

已完成

原始需求

  • 来源:MVP-1 集成验收工单 #27,2026-08-23。
  • 脱敏摘要:从正式构建产物执行真实浏览器登录验收。

问题事实

生产包加载后在 Vuex settings 初始化阶段抛出 Cannot read properties of undefined (reading theme)。构建同时明确提示 element-variables.scss 和 variables.scss 没有 default export;当前代码却把普通 SCSS 当作 JS 默认对象导入,因此应用在登录页渲染前白屏。

目标

消除对 SCSS 默认 JS 导出的依赖,使生产包能稳定初始化,同时保持现有主题颜色与侧栏样式值不变。

非目标

  • 不重新设计主题或登录页。
  • 不升级 Sass、webpack、Vue 或 Element Plus。
  • 不处理其他既有构建警告。

已确认方案

  • 在 JS 配置中定义前端运行时需要的主题和侧栏颜色常量。
  • settings store、layout 和 sidebar 改用该 JS 配置;SCSS 继续仅作为样式源。
  • 保持常量与现有 SCSS 值一致,并用 unit/build/Chromium 回归验证。

该缺陷恢复 #17、#29 已确认界面的既有行为,无新交互或视觉设计,复用既有设计证据。

影响范围

  • admin-ui 运行时主题配置
  • layout/sidebar 的颜色绑定
  • 相关单元测试

风险与回退

  • 风险:JS 与 SCSS 颜色值未来需同步维护;当前改动集中到一个 JS 配置文件并以测试锁定关键值。
  • 回退:回退本工单提交;但会恢复生产白屏。

验收标准

  • theme 与 sidebar 运行时配置不再导入 SCSS。
  • admin-ui unit、lint、正式构建通过。
  • Chromium 可渲染账号密码登录页且无页面异常。
  • #27 的登录及 Provider 列表安全回归通过。

文档影响

无长期产品文档影响:不改变用户行为、启动命令、接口或数据;结果写入 #27 集成验收证据和任务归档。

实施与验证证据(2026-08-23)

  • 实现提交:9e8debc。
  • 四处运行时 SCSS 默认导入已替换为集中 JS 常量,数值保持与原 SCSS 一致;新增常量单测。
  • admin-ui 全量 35 个单测、lint 0 error、正式构建和 Chromium 登录回归通过;相关 SCSS default export warning 已从 6 条降为 4 条构建 warning。
  • 当前状态:已于 2026-08-24 通过用户验收并关闭。

归档证据

用户验收(2026-08-24)

  • 用户明确确认本工单验收通过。
  • 状态更新为已完成并关闭。
## 状态 已完成 ## 原始需求 - 来源:MVP-1 集成验收工单 #27,2026-08-23。 - 脱敏摘要:从正式构建产物执行真实浏览器登录验收。 ## 问题事实 生产包加载后在 Vuex `settings` 初始化阶段抛出 `Cannot read properties of undefined (reading theme)`。构建同时明确提示 `element-variables.scss` 和 `variables.scss` 没有 default export;当前代码却把普通 SCSS 当作 JS 默认对象导入,因此应用在登录页渲染前白屏。 ## 目标 消除对 SCSS 默认 JS 导出的依赖,使生产包能稳定初始化,同时保持现有主题颜色与侧栏样式值不变。 ## 非目标 - 不重新设计主题或登录页。 - 不升级 Sass、webpack、Vue 或 Element Plus。 - 不处理其他既有构建警告。 ## 已确认方案 - 在 JS 配置中定义前端运行时需要的主题和侧栏颜色常量。 - `settings` store、layout 和 sidebar 改用该 JS 配置;SCSS 继续仅作为样式源。 - 保持常量与现有 SCSS 值一致,并用 unit/build/Chromium 回归验证。 该缺陷恢复 #17、#29 已确认界面的既有行为,无新交互或视觉设计,复用既有设计证据。 ## 影响范围 - admin-ui 运行时主题配置 - layout/sidebar 的颜色绑定 - 相关单元测试 ## 风险与回退 - 风险:JS 与 SCSS 颜色值未来需同步维护;当前改动集中到一个 JS 配置文件并以测试锁定关键值。 - 回退:回退本工单提交;但会恢复生产白屏。 ## 验收标准 - [x] theme 与 sidebar 运行时配置不再导入 SCSS。 - [x] admin-ui unit、lint、正式构建通过。 - [x] Chromium 可渲染账号密码登录页且无页面异常。 - [x] #27 的登录及 Provider 列表安全回归通过。 ## 文档影响 无长期产品文档影响:不改变用户行为、启动命令、接口或数据;结果写入 #27 集成验收证据和任务归档。 ## 实施与验证证据(2026-08-23) - 实现提交:`9e8debc`。 - 四处运行时 SCSS 默认导入已替换为集中 JS 常量,数值保持与原 SCSS 一致;新增常量单测。 - admin-ui 全量 35 个单测、lint 0 error、正式构建和 Chromium 登录回归通过;相关 SCSS default export warning 已从 6 条降为 4 条构建 warning。 - 当前状态:已于 2026-08-24 通过用户验收并关闭。 ## 归档证据 - Wiki:[Task-34-修复-admin-ui-SCSS-变量导入生产白屏](https://git.ilapage.cn/OPC/chorus/wiki/Task-34-修复-admin-ui-SCSS-变量导入生产白屏) - revision:`bb203a3e1e5cd864e37ecb025ee7e33ea8f53f62` - 按规则未导出 `docs/task/`。 ## 用户验收(2026-08-24) - 用户明确确认本工单验收通过。 - 状态更新为已完成并关闭。
ila closed this issue 2026-08-24 00:04:32 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/chorus#34