import { defineConfig } from "vite"; import react from "@vitejs/plugin-react"; import tailwindcss from "@tailwindcss/vite"; import path from "path"; import runtimeErrorOverlay from "@replit/vite-plugin-runtime-error-modal"; const rawPort = process.env.PORT ?? "3001"; const port = Number(rawPort); if (Number.isNaN(port) || port <= 0) { throw new Error(`Invalid PORT value: "${rawPort}"`); } const basePath = process.env.BASE_PATH ?? "/"; const apiProxyTarget = process.env.API_PROXY_TARGET ?? "http://127.0.0.1:3002"; export default defineConfig({ base: basePath, plugins: [ react(), tailwindcss(), runtimeErrorOverlay(), ...(process.env.NODE_ENV !== "production" && process.env.REPL_ID !== undefined ? [ await import("@replit/vite-plugin-cartographer").then((m) => m.cartographer({ root: path.resolve(import.meta.dirname, ".."), }), ), await import("@replit/vite-plugin-dev-banner").then((m) => m.devBanner(), ), ] : []), ], resolve: { alias: { "@": path.resolve(import.meta.dirname, "src"), "@assets": path.resolve(import.meta.dirname, "..", "..", "attached_assets"), }, dedupe: ["react", "react-dom"], }, root: path.resolve(import.meta.dirname), build: { outDir: path.resolve(import.meta.dirname, "dist/public"), emptyOutDir: true, }, server: { port, host: "0.0.0.0", allowedHosts: true, proxy: { "/api": { target: apiProxyTarget, changeOrigin: true, }, }, fs: { strict: true, deny: ["**/.*"], }, }, preview: { port, host: "0.0.0.0", allowedHosts: true, }, });