import { fileURLToPath, URL } from 'node:url' import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' import tailwindcss from '@tailwindcss/vite' import { ViteImageOptimizer } from 'vite-plugin-image-optimizer' // https://vite.dev/config/ export default defineConfig({ plugins: [ react(), tailwindcss(), // svgo v4 keeps viewBox by default; defaults are fine ViteImageOptimizer(), ], resolve: { dedupe: ['react', 'react-dom'], alias: { '@': fileURLToPath(new URL('./src', import.meta.url)), }, }, optimizeDeps: { include: ['react', 'react-dom', 'react/jsx-runtime'], }, build: { cssCodeSplit: true, rollupOptions: { output: { manualChunks(id) { if (!id.includes('node_modules')) return if (id.includes('@visx') || id.includes('/d3-') || id.includes('motion')) return 'charts' if (id.includes('/react') || id.includes('react-dom') || id.includes('react-router')) return 'vendor' }, }, }, }, })