import { defineConfig } from "vite"; import react from "@vitejs/plugin-react"; import path from "path"; import runtimeErrorOverlay from "@replit/vite-plugin-runtime-error-modal"; export default defineConfig({ define: { __BUILD_SHA__: JSON.stringify(process.env.BUILD_SHA || "dev"), }, plugins: [ react(), runtimeErrorOverlay(), ...(process.env.NODE_ENV !== "production" && process.env.REPL_ID !== undefined ? [ await import("@replit/vite-plugin-cartographer").then((m) => m.cartographer(), ), await import("@replit/vite-plugin-dev-banner").then((m) => m.devBanner(), ), ] : []), ], resolve: { alias: { "@": path.resolve(import.meta.dirname, "client", "src"), "@shared": path.resolve(import.meta.dirname, "shared"), "@assets": path.resolve(import.meta.dirname, "attached_assets"), }, }, root: path.resolve(import.meta.dirname, "client"), build: { outDir: path.resolve(import.meta.dirname, "dist/public"), emptyOutDir: true, rollupOptions: { output: { manualChunks(id) { if ( id.includes("@monaco-editor") || id.includes("@babel/standalone") || id.includes("monaco-editor") ) { return "editor"; } if ( id.includes("@radix-ui") || id.includes("lucide-react") || id.includes("class-variance-authority") || id.includes("tailwind-merge") || id.includes("clsx") || id.includes("cmdk") || id.includes("vaul") || id.includes("embla-carousel") || id.includes("react-day-picker") || id.includes("recharts") ) { return "ui"; } if ( id.includes("node_modules/react/") || id.includes("node_modules/react-dom/") || id.includes("node_modules/react-hook-form") || id.includes("node_modules/wouter") || id.includes("node_modules/@tanstack/react-query") || id.includes("node_modules/zod") || id.includes("node_modules/@hookform") ) { return "vendor"; } }, }, }, }, server: { fs: { strict: true, deny: ["**/.*"], }, watch: { usePolling: true, interval: 300, }, }, });