From a078e37e2c470ac7ac67d932d6021971c688ebe8 Mon Sep 17 00:00:00 2001 From: chengww Date: Sun, 17 May 2026 23:38:18 +0800 Subject: [PATCH] =?UTF-8?q?fix(build):=20renderer=20=E5=8D=95=20chunk=20?= =?UTF-8?q?=E6=89=93=E5=8C=85=EF=BC=8C=E8=A7=84=E9=81=BF=20chunk=20?= =?UTF-8?q?=E9=97=B4=E5=BE=AA=E7=8E=AF=E4=BE=9D=E8=B5=96=20TDZ=20=E7=99=BD?= =?UTF-8?q?=E5=B1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit store/index.ts 用 `export *` 聚合所有 store + 抽出的共享工具(如 debouncedStorage)被多 store 引用,Vite 6 默认拆分会让 utils 合并到 entry chunk,再与 store chunk 形成 index ↔ store 循环;当循环 chunk 顶层同步访问对方导出的 const(如 `persist: { storage: debouncedLocalStorage }`), 生产构建会触发 TDZ 报错 `Cannot access 'debouncedLocalStorage' before initialization`,表现为打包后白屏(dev 不分包不暴露)。 Electron 桌面端无 CDN/首屏体积顾虑,单 chunk 是最简洁的兜底。 --- electron.vite.config.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/electron.vite.config.ts b/electron.vite.config.ts index 32424c3..464e318 100644 --- a/electron.vite.config.ts +++ b/electron.vite.config.ts @@ -35,6 +35,17 @@ export default defineConfig({ }) ], publicDir: resolve('resources'), + build: { + rollupOptions: { + output: { + // 全部代码打到 entry chunk,避免 Vite 默认按共享依赖拆分时 + // 与 store/index.ts 的 `export *` 形成 chunk 间循环引用, + // 触发生产构建里的 TDZ(dev 不分包不会暴露此问题)。 + // Electron 桌面端本地加载,无 CDN/首屏体积顾虑,单 chunk 合算。 + manualChunks: () => 'index' + } + } + }, server: { host: '0.0.0.0', port: 2389