AeThex-OS/vite.config.ts

68 lines
1.9 KiB
TypeScript

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 { metaImagesPlugin } from "./vite-plugin-meta-images";
export default defineConfig({
plugins: [
react(),
runtimeErrorOverlay(),
tailwindcss(),
metaImagesPlugin(),
...(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"),
},
},
css: {
postcss: {
plugins: [],
},
},
root: path.resolve(import.meta.dirname, "client"),
base: './',
publicDir: path.resolve(import.meta.dirname, "client", "public"),
build: {
outDir: path.resolve(import.meta.dirname, "dist/public"),
emptyOutDir: true,
},
server: {
cors: true,
host: "0.0.0.0",
port: 5000,
// HMR configuration - use different settings for Capacitor live reload vs cloud dev
hmr: process.env.CAPACITOR_LIVE_RELOAD === 'true'
? {
// For Capacitor live reload: use default WebSocket on same host
protocol: 'ws',
host: undefined, // Uses request host automatically
}
: {
// For cloud development (GitHub Codespaces, Replit, etc.)
host: "orange-journey-wvwxgw4r6vrf577-5000.app.github.dev",
protocol: "wss",
clientPort: 443,
},
allowedHosts: true,
fs: {
strict: true,
deny: ["**/.*"],
},
},
});