import { defineConfig } from 'vite' import react from '@vitejs/plugin-react-swc' import path from 'path' import tailwindcss from "@tailwindcss/vite" // https://vitejs.dev/config/ export default defineConfig({ plugins: [react(), tailwindcss()], resolve: { alias: { '@': path.resolve(__dirname, './src'), '@config': path.resolve(__dirname, './src/config'), '@router': path.resolve(__dirname, './src/router'), '@api': path.resolve(__dirname, './src/apis'), '@stores': path.resolve(__dirname, './src/stores'), '@pages': path.resolve(__dirname, './src/pages'), '@components': path.resolve(__dirname, './src/components'), '@utils': path.resolve(__dirname, './src/utils'), '@types': path.resolve(__dirname, './src/types'), '@assets': path.resolve(__dirname, './src/assets'), '@lib': path.resolve(__dirname, './src/lib'), '@hooks': path.resolve(__dirname, './src/hooks'), '@styles': path.resolve(__dirname, './src/styles') } }, server: { port: 3000, open: true, hmr: { overlay: true } }, build: { target: 'esnext', outDir: 'build', sourcemap: true, rollupOptions: { output: { manualChunks: { vendor: ['react', 'react-dom'], radix: ['@radix-ui'], charts: ['recharts'], utils: ['date-fns', 'clsx', 'tailwind-merge'], hooks: ['react-hook-form'], icons: ['lucide-react'] } } }, chunkSizeWarningLimit: 1000 }, optimizeDeps: { include: [ 'react', 'react-dom', '@radix-ui/react-slot', '@radix-ui/react-dialog', '@radix-ui/react-dropdown-menu', 'lucide-react', 'date-fns', 'clsx', 'tailwind-merge' ] } })