将 react/react-dom/react-router-dom → vendor-react 将 antd/@ant-design/icons → vendor-antd 将 html5-qrcode → vendor-qrcode 第三方巨头的独立 chunk 可被浏览器长期缓存,业务代码更新时无需重新下载。
41 lines
1.0 KiB
TypeScript
41 lines
1.0 KiB
TypeScript
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({
|
|
plugins: [react(), tailwindcss(), basicSsl()],
|
|
|
|
// 🚀 构建优化:将第三方巨头独立分包,利用浏览器缓存
|
|
build: {
|
|
rollupOptions: {
|
|
output: {
|
|
manualChunks: {
|
|
"vendor-react": ["react", "react-dom", "react-router-dom"],
|
|
"vendor-antd": ["antd", "@ant-design/icons"],
|
|
"vendor-qrcode": ["html5-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,
|
|
},
|
|
},
|
|
},
|
|
});
|