Improved chuncking.

This commit is contained in:
Tom Butcher 2025-12-27 16:17:38 +00:00
parent 6eb9f8d37f
commit 72fea29593

View File

@ -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'
}
}
}
}