import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react-swc'; import viteCompression from 'vite-plugin-compression'; import { visualizer } from 'rollup-plugin-visualizer'; import path from 'path'; export default defineConfig({ plugins: [ react(), viteCompression({ algorithm: 'brotliCompress', ext: '.br', threshold: 10240, // Seuil pour activer la compression (10 Ko) }), viteCompression({ algorithm: 'gzip', ext: '.gz', threshold: 10240, }), visualizer({ open: false, // Désactive l'ouverture automatique du visualiseur filename: 'stats.html', template: 'treemap', }), ], resolve: { alias: { '@pages': path.resolve(__dirname, './src/pages'), '@components': path.resolve(__dirname, './src/components'), '@assets': path.resolve(__dirname, './src/assets'), }, }, build: { target: 'esnext', minify: 'esbuild', sourcemap: true, // Active les sourcemaps pour faciliter le débogage rollupOptions: { output: { manualChunks(id) { if (id.includes('node_modules')) { if (id.includes('@mui')) { return 'vendor_mui'; } return 'vendor'; } }, }, }, }, server: { port: 3000, open: true, cors: true, }, optimizeDeps: { include: ['swiper/react', 'swiper/modules'], exclude: ['cssnano'], // Exclut les dépendances problématiques comme cssnano }, });