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({
|
||||
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