import path from "path" import react from "@vitejs/plugin-react" import { defineConfig } from "vite" import { inspectAttr } from 'kimi-plugin-inspect-react' // https://vite.dev/config/ export default defineConfig({ // 必须用绝对路径,否则 /audit/terminal 等深链会解析成 /audit/assets/... 导致白屏 // Logan.Li base: '/', plugins: [inspectAttr(), react()], resolve: { alias: { "@": path.resolve(__dirname, "./src"), }, }, build: { rollupOptions: { output: { // 按 vendor 拆包,减小 embed 主包体积 // Logan.Li manualChunks(id) { if (!id.includes("node_modules")) return // recharts 须在 react 之前匹配,避免 vendor 循环依赖 // Logan.Li if (id.includes("recharts") || id.includes("/d3-")) return "vendor-charts" if (id.includes("react-dom") || id.includes("react-router") || /[/\\]react[/\\]/.test(id)) { return "vendor-react" } if (id.includes("@codemirror") || id.includes("@uiw/react-codemirror")) return "vendor-codemirror" if (id.includes("xterm")) return "vendor-xterm" if (id.includes("@radix-ui")) return "vendor-radix" if (id.includes("@tanstack")) return "vendor-query" if (id.includes("lucide-react")) return "vendor-icons" }, }, }, chunkSizeWarningLimit: 600, }, server: { port: 5173, host: true, proxy: { "/api": { target: "http://localhost:8080", changeOrigin: true, }, "/ws": { target: "http://localhost:8080", ws: true, changeOrigin: true, }, "/health": { target: "http://localhost:8080", changeOrigin: true, }, "/version": { target: "http://localhost:8080", changeOrigin: true, }, }, }, })