perf: code-split vendor chunks to eliminate 500kB bundle warning
Split the single 713kB JS bundle into separate chunks: - react-vendor: React core (~192kB) - markdown: react-markdown + remark/rehype + highlight.js (~476kB) - icons: lucide-react (~6kB) - ui: Radix UI components - index: app code (~37kB) Improves caching (vendor chunks change less often) and eliminates the Vite chunk size warning.
This commit is contained in:
@@ -4,4 +4,24 @@ import tailwindcss from '@tailwindcss/vite'
|
|||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins: [react(), tailwindcss()],
|
plugins: [react(), tailwindcss()],
|
||||||
|
build: {
|
||||||
|
rollupOptions: {
|
||||||
|
output: {
|
||||||
|
manualChunks(id) {
|
||||||
|
if (id.includes('node_modules/react-dom') || id.includes('node_modules/react/')) {
|
||||||
|
return 'react-vendor'
|
||||||
|
}
|
||||||
|
if (id.includes('node_modules/react-markdown') || id.includes('node_modules/remark-') || id.includes('node_modules/rehype-') || id.includes('node_modules/unified') || id.includes('node_modules/mdast') || id.includes('node_modules/hast') || id.includes('node_modules/micromark') || id.includes('node_modules/highlight.js')) {
|
||||||
|
return 'markdown'
|
||||||
|
}
|
||||||
|
if (id.includes('node_modules/lucide-react')) {
|
||||||
|
return 'icons'
|
||||||
|
}
|
||||||
|
if (id.includes('node_modules/@radix-ui')) {
|
||||||
|
return 'ui'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user