Files
ctms/frontend/vite.config.ts
T
2026-06-30 17:25:03 +08:00

58 lines
1.7 KiB
TypeScript

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import { fileURLToPath } from "node:url";
const devApiProxyTarget = process.env.VITE_DEV_API_PROXY_TARGET || "http://backend:8000";
const hmrClientPort = Number(process.env.VITE_HMR_CLIENT_PORT || "");
const tauriDevHost = process.env.TAURI_DEV_HOST;
const tauriPlatform = process.env.TAURI_ENV_PLATFORM;
const tauriDebug = process.env.TAURI_ENV_DEBUG === "true";
export default defineConfig({
clearScreen: false,
envPrefix: ["VITE_", "TAURI_ENV_"],
plugins: [
vue(),
{
name: "sanitize-legacy-css",
generateBundle(_, bundle) {
for (const asset of Object.values(bundle)) {
if (asset.type !== "asset" || !asset.fileName.endsWith(".css") || typeof asset.source !== "string") {
continue;
}
asset.source = asset.source
.replace(/\.el-button::\-moz-focus-inner\{border:0\}/g, "")
.replace(/\.el-input__inner\[type=password\]::\-ms-reveal\{display:none\}/g, "")
.replace(/filter:alpha\(opacity=0\);/g, "")
.replace(/[^{}]*::\-webkit-scrollbar[^{}]*\{[^{}]*\}/g, "");
}
},
},
],
resolve: {
alias: {
"@": fileURLToPath(new URL("./src", import.meta.url)),
},
},
server: {
host: tauriDevHost || true,
port: 5173,
strictPort: true,
hmr: hmrClientPort ? { clientPort: hmrClientPort } : undefined,
watch: {
ignored: ["**/src-tauri/**"],
},
proxy: {
"/api": {
target: devApiProxyTarget,
changeOrigin: true,
},
},
},
build: {
target: tauriPlatform === "windows" ? "chrome105" : "safari13",
minify: tauriDebug ? false : "esbuild",
sourcemap: tauriDebug,
},
});