58 lines
1.7 KiB
TypeScript
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,
|
|
},
|
|
});
|