Files
nj/apps/web/vite.config.ts
iven 8111471e93
Some checks failed
Main Merge / backend (push) Has been cancelled
Main Merge / frontend (push) Has been cancelled
feat: 添加管理端前端 (HMS 基座 React 管理面板)
- 从 HMS 基座复制 apps/web/ (React + Ant Design + Vite + TypeScript)
- 管理端自动代理 API 到 localhost:3000 (vite.config.ts)
- 更新 scripts/dev.sh 支持三端启动: backend/admin/app
- 登录验证通过, 用户管理/角色权限/审计日志等页面正常
- 添加 .gitignore 排除 node_modules/dist
2026-06-02 10:03:13 +08:00

67 lines
1.8 KiB
TypeScript

import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import tailwindcss from "@tailwindcss/vite";
export default defineConfig({
plugins: [react(), ...tailwindcss()],
server: {
port: 5174,
proxy: {
"/api": {
target: "http://localhost:3000",
changeOrigin: true,
},
"/uploads": {
target: "http://localhost:3000",
changeOrigin: true,
},
"/ws": {
target: "ws://localhost:3000",
ws: true,
},
},
},
build: {
target: "es2023",
cssTarget: "chrome120",
rollupOptions: {
output: {
manualChunks(id) {
if (id.includes("node_modules/react-dom") || id.includes("node_modules/react/") || id.includes("node_modules/react-router-dom")) {
return "vendor-react";
}
if (id.includes("node_modules/@ant-design/charts") || id.includes("node_modules/@ant-design/plots") || id.includes("node_modules/@ant-design/graphs")) {
return "vendor-charts";
}
if (id.includes("node_modules/@xyflow/react")) {
return "vendor-flow";
}
if (id.includes("node_modules/@wangeditor/") || id.includes("node_modules/wangeditor/")) {
return "vendor-editor";
}
if (id.includes("node_modules/antd") || id.includes("node_modules/@ant-design")) {
return "vendor-antd";
}
if (id.includes("node_modules/axios") || id.includes("node_modules/zustand")) {
return "vendor-utils";
}
},
},
},
sourcemap: false,
reportCompressedSize: false,
chunkSizeWarningLimit: 500,
},
optimizeDeps: {
include: [
"react",
"react-dom",
"react-router-dom",
"antd",
"@ant-design/icons",
"axios",
"zustand",
],
},
});