Files
iistwin/vite.config.ts

86 lines
2.4 KiB
TypeScript

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,
},
},
});