Files
track/frontend/vite.config.ts

48 lines
1.5 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import tailwindcss from "@tailwindcss/vite";
import basicSsl from "@vitejs/plugin-basic-ssl";
// https://vite.dev/config/
export default defineConfig({
// 🚀 basicSsl 仅 dev本地 HMR https需要生产 build 跳过,
// 避免服务器容器低熵环境下生成自签名证书导致 vite build 卡住
plugins: [
react(),
tailwindcss(),
...(process.env.NODE_ENV !== "production" ? [basicSsl()] : []),
],
// 🚀 构建优化:将第三方巨头独立分包,利用浏览器缓存
build: {
rollupOptions: {
output: {
manualChunks(id: string) {
if (id.includes("node_modules/react-dom") || id.includes("node_modules/react/") || id.includes("node_modules/scheduler")) return "vendor-react";
if (id.includes("node_modules/react-router")) return "vendor-react";
if (id.includes("node_modules/antd") || id.includes("node_modules/@ant-design")) return "vendor-antd";
if (id.includes("node_modules/html5-qrcode")) return "vendor-qrcode";
},
},
},
},
clearScreen: false,
server: {
host: "0.0.0.0",
port: 1420,
strictPort: true,
// Docker on Windows/WSL 必须用 polling 才能检测到文件变化
watch: {
usePolling: true,
ignored: ["**/src-tauri/**"],
},
proxy: {
"/api": {
target: "http://backend:8000", // Docker 内部用服务名
changeOrigin: true,
},
},
},
});