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: '/', })