Files
home_stock/frontend/vite.config.ts
2026-01-28 19:22:30 +01:00

73 lines
2.0 KiB
TypeScript

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import path from 'path'
// Documentation Vite : https://vitejs.dev/config/
export default defineConfig({
plugins: [
react({
// Support JSX automatique (pas besoin d'importer React)
jsxRuntime: 'automatic',
}),
],
// Configuration des alias de chemins
resolve: {
alias: {
'@': path.resolve(__dirname, './src'),
'@components': path.resolve(__dirname, './src/components'),
'@pages': path.resolve(__dirname, './src/pages'),
'@hooks': path.resolve(__dirname, './src/hooks'),
'@api': path.resolve(__dirname, './src/api'),
'@utils': path.resolve(__dirname, './src/utils'),
'@assets': path.resolve(__dirname, './src/assets'),
'@styles': path.resolve(__dirname, './src/styles'),
},
},
// Configuration du serveur de développement
server: {
host: '0.0.0.0', // Permet l'accès depuis l'extérieur du conteneur
port: 5173,
strictPort: true, // Échoue si le port est déjà utilisé
watch: {
// Utilise polling pour Docker (nécessaire pour hot-reload)
usePolling: true,
},
// Configuration CORS pour développement
cors: true,
},
// Configuration du build de production
build: {
outDir: 'dist',
sourcemap: true, // Génère les sourcemaps pour debugging
// Taille max des chunks (avertissement si dépassé)
chunkSizeWarningLimit: 1000,
rollupOptions: {
output: {
// Chunking manuel pour optimiser le cache
manualChunks: {
// Vendor chunks (dépendances externes)
'react-vendor': ['react', 'react-dom', 'react-router-dom'],
'query-vendor': ['@tanstack/react-query'],
},
},
},
},
// Variables d'environnement exposées au client
// Seules les variables préfixées par VITE_ sont exposées
envPrefix: 'VITE_',
// Configuration optimisations
optimizeDeps: {
include: [
'react',
'react-dom',
'react-router-dom',
'@tanstack/react-query',
],
},
})