fix: 根治前端循环分块导致的永久骨架屏 #24

Merged
lunanting merged 1 commits from codex/web-bootstrap-fix-0923 into main 2026-09-23 11:36:50 +08:00
Owner

目的与范围

  • 生产网页永久停在静态骨架屏,React 没有挂载。
  • 浏览器复现到 antd-vendor 抛出 Cannot read properties of undefined (reading 'version')。
  • 根因是 Vite 按包路径强制拆分 React、Ant Design、图表及数据客户端,Rollup 已警告这些块互相循环,最终生成的模块初始化顺序在浏览器中崩溃。
  • 将所有相互依赖的第三方模块放入同一 vendor 块,并把 CIRCULAR_CHUNK 提升为构建失败,防止以后再次发布“构建成功但网页打不开”的产物。

同步与兼容性

  • 起始及最近同步 main:6b0bf59e744cfa8a04f41a68a2d4a493f6fb3130
  • 待审核提交:d32494ca128ada60bce6495f24afd0d25a2be259
  • 仅修改生产构建分包配置,不改变业务代码、接口、数据库或权限。
  • 无冲突;保留 PR #23 的实时刷新功能。
  • 仓库所有者已在当前连续任务中明确要求安全合并并部署,本次是该生产部署暴露出的启动故障修复。

验证

  • npm --prefix frontend run check:通过,lint、18项测试、生产构建均通过。
  • 构建不再产生 Circular chunk 警告;配置会在未来出现该警告时直接阻止发布。
  • 全新 Chrome 用户目录加载本地生产产物:React 成功挂载完整页面,控制台无 TypeError/ReferenceError,截图验证不再停留骨架屏。
  • 修复前使用同一浏览器流程稳定复现 antd-vendor TypeError。

风险与回退

  • vendor 单块约 2.9MB(gzip约941KB),总依赖体积基本不变;首屏请求数减少,缓存粒度变粗。
  • 可直接 revert 本提交;不涉及数据迁移。
## 目的与范围 - 生产网页永久停在静态骨架屏,React 没有挂载。 - 浏览器复现到 `antd-vendor` 抛出 `Cannot read properties of undefined (reading 'version')`。 - 根因是 Vite 按包路径强制拆分 React、Ant Design、图表及数据客户端,Rollup 已警告这些块互相循环,最终生成的模块初始化顺序在浏览器中崩溃。 - 将所有相互依赖的第三方模块放入同一 vendor 块,并把 `CIRCULAR_CHUNK` 提升为构建失败,防止以后再次发布“构建成功但网页打不开”的产物。 ## 同步与兼容性 - 起始及最近同步 main:`6b0bf59e744cfa8a04f41a68a2d4a493f6fb3130` - 待审核提交:`d32494ca128ada60bce6495f24afd0d25a2be259` - 仅修改生产构建分包配置,不改变业务代码、接口、数据库或权限。 - 无冲突;保留 PR #23 的实时刷新功能。 - 仓库所有者已在当前连续任务中明确要求安全合并并部署,本次是该生产部署暴露出的启动故障修复。 ## 验证 - `npm --prefix frontend run check`:通过,lint、18项测试、生产构建均通过。 - 构建不再产生 Circular chunk 警告;配置会在未来出现该警告时直接阻止发布。 - 全新 Chrome 用户目录加载本地生产产物:React 成功挂载完整页面,控制台无 TypeError/ReferenceError,截图验证不再停留骨架屏。 - 修复前使用同一浏览器流程稳定复现 `antd-vendor` TypeError。 ## 风险与回退 - vendor 单块约 2.9MB(gzip约941KB),总依赖体积基本不变;首屏请求数减少,缓存粒度变粗。 - 可直接 revert 本提交;不涉及数据迁移。
lunanting added 1 commit 2026-09-23 11:36:28 +08:00
lunanting merged commit 5034cc5782 into main 2026-09-23 11:36:50 +08:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: lunanting/cangku#24
No description provided.