import { fileURLToPath } from "node:url"; import { defineConfig, loadEnv } from "vite"; import react from "@vitejs/plugin-react"; import wasm from "vite-plugin-wasm"; export default defineConfig(({ mode }) => { const env = loadEnv(mode, process.cwd(), ""); const apiTarget = env.VITE_API_TARGET || "http://127.0.0.1:8000"; return { plugins: [react(), wasm()], resolve: { alias: { "@mission-core/plugin-sdk": fileURLToPath( new URL("./src/core/device-plugins/frontendSdk.ts", import.meta.url), ), "@xgrids-k1/frontend": fileURLToPath( new URL("../../plugins/xgrids-k1/frontend/src", import.meta.url), ), }, dedupe: ["react", "react-dom", "@nodedc/ui-react"], }, optimizeDeps: { // Rerun resolves its WASM asset relative to the package entrypoint. Vite's // dependency pre-bundler flattens that entrypoint and leaves the WASM URL // pointing at the SPA fallback, which browsers reject as text/html. exclude: ["@rerun-io/web-viewer"], }, build: { target: "esnext", }, server: { host: "127.0.0.1", port: 5173, strictPort: true, fs: { allow: [ fileURLToPath(new URL(".", import.meta.url)), fileURLToPath(new URL("../../plugins/xgrids-k1", import.meta.url)), fileURLToPath(new URL("../../../NODEDC_DESIGN_GUIDELINE/packages", import.meta.url)), ], }, proxy: { "/api": { target: apiTarget, changeOrigin: false, ws: true, }, }, }, preview: { host: "127.0.0.1", port: 4173, strictPort: true, }, }; });