diff --git a/frontend/web/vite.config.ts b/frontend/web/vite.config.ts index 6808b57..d2547cd 100644 --- a/frontend/web/vite.config.ts +++ b/frontend/web/vite.config.ts @@ -25,19 +25,20 @@ export default defineConfig({ rollupOptions: { output: { manualChunks(id) { - // Monaco Editor — only used by Scenarios page + // Monaco Editor — only used by Scenarios page, cleanly isolated. if (id.includes('@monaco-editor') || id.includes('monaco-editor')) { return 'vendor-monaco' } - // @ant-design/charts — only used by Home page - if (id.includes('@ant-design/charts')) { - return 'vendor-charts' - } - // Ant Design core — used everywhere + // Ant Design core — used everywhere, one-way deps (no circular chunk). if (id.includes('antd') || id.includes('@ant-design/icons')) { return 'vendor-antd' } - // React + remaining libs — used everywhere, merged to avoid circular imports + // Everything else (React, @ant-design/charts + @antv/*, etc.) → vendor. + // NOTE: do NOT split @ant-design/charts into its own chunk — its deep + // @antv dependency graph creates a circular chunk reference that causes + // a runtime TDZ crash ("Cannot access 'd' before initialization"). + // charts is loaded on the Home page (default route) anyway, so a + // separate chunk buys almost nothing. if (id.includes('node_modules')) { return 'vendor' }