import react from "@vitejs/plugin-react"; import { compression } from "vite-plugin-compression2"; import { defineConfig } from "vite"; export default defineConfig(({ command }) => { // dev 模式下默认把 /api 代理到线上电商后端,本地 `npm run dev` 即可直接登录/生成。 // 想连本地或 SSH 隧道的后端时,用环境变量覆盖: // $env:OMNIAI_DEV_API_TARGET="http://127.0.0.1:3601"; npm run dev // 仅 dev 代理用途,不会打进生产构建产物。 const devApiTarget = process.env.OMNIAI_DEV_API_TARGET?.trim() || (command === "serve" ? "https://omniai.com.cn" : ""); const apiProxy = devApiTarget ? { "/api": { target: devApiTarget, changeOrigin: true, }, } : undefined; return { plugins: [ react(), compression({ algorithms: ["gzip", "brotliCompress"], threshold: 1024 }), ], server: { port: 5173, host: "127.0.0.1", ...(apiProxy ? { proxy: apiProxy } : {}), }, preview: { port: 4174, host: "127.0.0.1", }, ...(command === "build" ? { esbuild: { drop: ["console", "debugger"] } } : {}), build: { sourcemap: false, rollupOptions: { output: { manualChunks(id: string) { if (id.includes("node_modules/react") || id.includes("node_modules/react-dom") || id.includes("node_modules/scheduler")) { return "vendor-react"; } if (id.includes("node_modules/@ant-design") || id.includes("node_modules/antd") || id.includes("node_modules/rc-")) { return "vendor-antd"; } }, }, }, }, }; });