diff --git a/Dockerfile b/Dockerfile index d202c00..aa61863 100644 --- a/Dockerfile +++ b/Dockerfile @@ -27,7 +27,7 @@ RUN ls -la server/ # Build the application # Build frontend first -RUN npx vite build +RUN NODE_ENV=production npx vite build # Vérifier que les fichiers sont construits RUN echo "=== BUILD VERIFICATION ===" && \ diff --git a/vite.config.ts b/vite.config.ts index c435e97..e82e051 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -22,10 +22,30 @@ export default defineConfig({ "@shared": path.resolve(import.meta.dirname, "shared"), }, }, + // En production, les console.log/debug de debug sont retirés du bundle par + // le minifieur (console.warn et console.error sont conservés). En dev, tout + // reste visible. + esbuild: { + pure: process.env.NODE_ENV === "production" ? ["console.log", "console.debug"] : [], + }, root: path.resolve(import.meta.dirname, "client"), build: { outDir: path.resolve(import.meta.dirname, "dist/public"), emptyOutDir: true, + rollupOptions: { + output: { + // Sépare les grosses dépendances stables du code applicatif : + // elles ne changent qu'aux montées de version et restent donc en + // cache navigateur entre deux déploiements, au lieu de faire + // retélécharger 1,7 Mo à chaque mise en production. + manualChunks: { + "vendor-react": ["react", "react-dom", "wouter"], + "vendor-query": ["@tanstack/react-query"], + "vendor-charts": ["recharts"], + "vendor-icons": ["lucide-react"], + }, + }, + }, }, server: { fs: {