merge: testing → main (reconcile 2-week divergence)
This commit is contained in:
@@ -4,4 +4,38 @@ import react from '@vitejs/plugin-react'
|
||||
// https://vite.dev/config/
|
||||
export default defineConfig({
|
||||
plugins: [react()],
|
||||
server: {
|
||||
proxy: {
|
||||
'/api': {
|
||||
target: 'http://127.0.0.1:8000',
|
||||
changeOrigin: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
build: {
|
||||
// Split heavy third-party libs into their own chunks so the main
|
||||
// bundle stays small and the rarely-changing vendor code stays
|
||||
// cacheable across deploys. Recharts + asciinema-player + lucide
|
||||
// together made up most of the weight that was tripping the 500kB
|
||||
// warning.
|
||||
rollupOptions: {
|
||||
output: {
|
||||
manualChunks: (id: string) => {
|
||||
if (!id.includes('node_modules')) return undefined
|
||||
// d3-* ships alongside recharts as its plotting engine —
|
||||
// grouping them keeps tree-shaken subsets together.
|
||||
if (id.includes('recharts') || id.includes('/d3-')) return 'charts'
|
||||
if (id.includes('asciinema-player')) return 'player'
|
||||
if (id.includes('lucide-react')) return 'icons'
|
||||
if (id.includes('react-router')) return 'router'
|
||||
if (id.includes('react-dom')) return 'react-dom'
|
||||
if (id.includes('/react/') || id.endsWith('/react')) return 'react'
|
||||
return 'vendor'
|
||||
},
|
||||
},
|
||||
},
|
||||
// Legitimate ceiling for any single chunk after splitting; anything
|
||||
// larger is a real bloat regression worth investigating.
|
||||
chunkSizeWarningLimit: 600,
|
||||
},
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user