From 72fea2959314b128f4f76948827814ad03d46c07 Mon Sep 17 00:00:00 2001 From: Tom Butcher Date: Sat, 27 Dec 2025 16:17:38 +0000 Subject: [PATCH] Improved chuncking. --- vite.config.js | 74 ++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 66 insertions(+), 8 deletions(-) diff --git a/vite.config.js b/vite.config.js index 6f61566..9fc26ff 100644 --- a/vite.config.js +++ b/vite.config.js @@ -9,16 +9,74 @@ export default defineConfig({ plugins: [react(), svgo(), svgr(), eslintPlugin()], build: { outDir: 'build', + chunkSizeWarningLimit: 1500, rollupOptions: { output: { - manualChunks: { - antd: ['antd'], - codemirror: [ - '@codemirror/lang-javascript', - '@codemirror/lang-python' /* etc */ - ], - three: ['three', 'gcode-preview'], - 'react-vendor': ['react', 'react-dom', 'react-router-dom'] + manualChunks(id) { + // --- CodeMirror + if (id.includes('node_modules/@codemirror')) { + return 'codemirror' + } + + // --- Lezer + if (id.includes('node_modules/@lezer')) { + return 'lezer' + } + + // --- Ant Design + if (id.includes('node_modules/antd')) { + return 'antd' + } + + if (id.includes('node_modules/@ant-design/icons')) { + return 'ant-icons' + } + + if (id.includes('node_modules/@ant-design/charts')) { + return 'ant-charts' + } + + // --- AntV + if (id.includes('node_modules/@antv')) { + return 'antv' + } + + // --- Three.js + if (id.includes('node_modules/three')) { + return 'three' + } + + // --- GCode Preview + if (id.includes('node_modules/gcode-preview')) { + return 'gcode-preview' + } + + // --- Online 3D Viewer + if (id.includes('node_modules/online-3d-viewer')) { + return 'online-3d-viewer' + } + + // --- Lodash + if (id.includes('node_modules/lodash')) { + return 'lodash' + } + + // --- tsparticles + if ( + id.includes('node_modules/@tsparticles') || + id.includes('node_modules/tsparticles') + ) { + return 'tsparticles' + } + + // --- React vendor + if ( + id.includes('node_modules/react') || + id.includes('node_modules/react-dom') || + id.includes('node_modules/react-router-dom') + ) { + return 'react-vendor' + } } } }