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"; import { mockupPreviewPlugin } from "./mockupPreviewPlugin"; const rawPort = process.env.PORT; if (!rawPort) { throw new Error( "PORT environment variable is required but was not provided.", ); } const port = Number(rawPort); if (Number.isNaN(port) || port <= 0) { throw new Error(`Invalid PORT value: "${rawPort}"`); } const basePath = process.env.BASE_PATH; if (!basePath) { throw new Error( "BASE_PATH environment variable is required but was not provided.", ); } export default defineConfig({ base: basePath, plugins: [ mockupPreviewPlugin(), 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, ".."), }), ), ] : []), ], resolve: { alias: { "@": path.resolve(import.meta.dirname, "src"), }, }, root: path.resolve(import.meta.dirname), build: { outDir: path.resolve(import.meta.dirname, "dist"), emptyOutDir: true, }, server: { port, host: "0.0.0.0", allowedHosts: true, fs: { strict: true, deny: ["**/.*"], }, }, preview: { port, host: "0.0.0.0", allowedHosts: true, }, });