102 lines
2.5 KiB
TypeScript
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: '/',
|
|
})
|