Files
sbd2-frontend/vite.config.ts
JSC 4352e4c792
Some checks failed
Frontend CI / lint (push) Failing after 18s
Frontend CI / build (push) Has been skipped
feat: implement lazy loading for routes and add a loading component in App.tsx; configure manual chunks in Vite for optimized builds
2025-10-04 15:44:33 +02:00

102 lines
2.5 KiB
TypeScript

import tailwindcss from '@tailwindcss/vite'
import react from '@vitejs/plugin-react-swc'
import path from 'path'
import { defineConfig } from 'vite'
// https://vite.dev/config/
export default defineConfig({
plugins: [react(), tailwindcss()],
resolve: {
alias: {
'@': path.resolve(__dirname, './src'),
},
},
// Development server configuration
server: {
port: 8001,
proxy: {
'/api': {
target: 'http://localhost:8000',
changeOrigin: true,
},
},
},
// Production build optimization
build: {
outDir: 'dist',
sourcemap: false, // Disable source maps in production for security
rollupOptions: {
output: {
manualChunks: {
// React core
'react': ['react', 'react-dom', 'react-router'],
// UI library - Radix UI components
'radix-ui': [
'@radix-ui/react-avatar',
'@radix-ui/react-checkbox',
'@radix-ui/react-context-menu',
'@radix-ui/react-dialog',
'@radix-ui/react-dropdown-menu',
'@radix-ui/react-label',
'@radix-ui/react-popover',
'@radix-ui/react-progress',
'@radix-ui/react-scroll-area',
'@radix-ui/react-select',
'@radix-ui/react-separator',
'@radix-ui/react-slider',
'@radix-ui/react-slot',
'@radix-ui/react-switch',
'@radix-ui/react-tabs',
'@radix-ui/react-tooltip',
],
// Drag and drop
'dnd-kit': [
'@dnd-kit/core',
'@dnd-kit/sortable',
'@dnd-kit/utilities',
],
// Utilities
'utils': [
'clsx',
'tailwind-merge',
'class-variance-authority',
'date-fns',
],
// Other libraries
'misc': [
'recharts',
'socket.io-client',
'sonner',
'next-themes',
'cmdk',
'react-day-picker',
'@number-flow/react',
'lucide-react',
],
},
},
},
},
// Preview server configuration (for testing built version)
preview: {
port: 8001,
proxy: {
'/api': {
target: 'http://localhost:8000',
changeOrigin: true,
},
'/socket.io': {
target: 'http://localhost:8000',
changeOrigin: true,
ws: true,
},
},
},
// For reverse proxy deployment, ensure assets are served from root
base: '/',
})