Files
ctms/frontend/vite.config.ts
T
Cheng Zhou 9cac75e85c
Client Quality Gates / Shared client and Web (push) Has been cancelled
Client Quality Gates / macOS Desktop (push) Has been cancelled
完善桌面端界面、发布检查与邮箱域名同步
2026-07-01 10:49:31 +08:00

59 lines
1.8 KiB
TypeScript

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import { fileURLToPath } from "node:url";
const hmrClientPort = Number(process.env.VITE_HMR_CLIENT_PORT || "");
const defaultDevApiProxyTarget = hmrClientPort ? "http://backend:8000" : "http://127.0.0.1:8000";
const devApiProxyTarget = process.env.VITE_DEV_API_PROXY_TARGET || defaultDevApiProxyTarget;
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,
},
});