trigo / trigo-web /app /vite.config.ts
k-l-lambda's picture
updated
502af73
import { defineConfig, loadEnv } from "vite";
import vue from "@vitejs/plugin-vue";
import { fileURLToPath, URL } from "node:url";
// https://vitejs.dev/config/
export default defineConfig(({ mode }) => {
// Load env file based on `mode` in the current working directory.
const env = loadEnv(mode, process.cwd(), "");
return {
plugins: [
vue(),
// Plugin to set correct MIME types
{
name: "configure-server",
configureServer(server) {
server.middlewares.use((req, res, next) => {
if (req.url && req.url.endsWith(".wasm")) {
res.setHeader("Content-Type", "application/wasm");
}
if (req.url && req.url.endsWith(".mjs")) {
res.setHeader("Content-Type", "application/javascript");
}
next();
});
}
}
],
// Point to parent project's public directory
publicDir: fileURLToPath(new URL("../public", import.meta.url)),
resolve: {
alias: {
"@": fileURLToPath(new URL("./src", import.meta.url)),
"@inc": fileURLToPath(new URL("../inc", import.meta.url))
}
},
server: {
host: env.VITE_HOST || "localhost",
port: parseInt(env.VITE_PORT) || 5173,
strictPort: true,
open: false,
fs: {
// Allow serving files from node_modules
allow: ["..", "../.."]
}
},
optimizeDeps: {
exclude: ["onnxruntime-web"]
},
build: {
rollupOptions: {
external: ["/lib/tgnParser.cjs"]
}
},
css: {
preprocessorOptions: {
scss: {
api: "modern" // Use modern Sass API
}
}
},
define: {
"process.env": {}
}
};
});