import tailwindcss from "@tailwindcss/vite"; import react from "@vitejs/plugin-react-swc"; import { defineConfig, PluginOption } from "vite"; import { resolve } from 'path' import sparkPlugin from "./src/lib/spark-vite-plugin"; import createIconImportProxy from "./src/lib/vite-phosphor-icon-proxy-plugin"; const projectRoot = process.env.PROJECT_ROOT || import.meta.dirname // https://vite.dev/config/ export default defineConfig({ base: './', plugins: [ react(), tailwindcss(), // DO NOT REMOVE createIconImportProxy() as PluginOption, sparkPlugin() as PluginOption, ], resolve: { alias: { '@': resolve(projectRoot, 'src') } }, server: { host: '0.0.0.0', port: 5000, strictPort: false, }, preview: { host: '0.0.0.0', port: Number(process.env.PORT) || 80, strictPort: false, }, build: { outDir: 'dist', emptyOutDir: true, rollupOptions: { output: { manualChunks: { 'react-vendor': ['react', 'react-dom'], 'ui-core': [ '@radix-ui/react-dialog', '@radix-ui/react-dropdown-menu', '@radix-ui/react-tabs', '@radix-ui/react-select', '@radix-ui/react-popover', ], 'ui-extended': [ '@radix-ui/react-accordion', '@radix-ui/react-alert-dialog', '@radix-ui/react-context-menu', '@radix-ui/react-hover-card', '@radix-ui/react-menubar', '@radix-ui/react-navigation-menu', '@radix-ui/react-scroll-area', ], 'form-components': [ 'react-hook-form', '@hookform/resolvers', 'zod', ], 'code-editor': ['@monaco-editor/react'], 'data-viz': ['d3', 'recharts'], 'workflow': ['reactflow'], 'icons': ['@phosphor-icons/react', 'lucide-react'], 'utils': ['clsx', 'tailwind-merge', 'date-fns', 'uuid'], }, }, }, chunkSizeWarningLimit: 1000, sourcemap: false, minify: 'terser', terserOptions: { compress: { drop_console: true, drop_debugger: true, pure_funcs: ['console.log', 'console.time', 'console.timeEnd'], }, }, }, optimizeDeps: { include: [ 'react', 'react-dom', '@radix-ui/react-dialog', '@radix-ui/react-tabs', ], }, });