import { fileURLToPath } from 'node:url' import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' // UI 组件库源码组合(modules/ui,源码级别名;见 Agent-System-Documents 提案 D29)。 const uiSrc = fileURLToPath(new URL('../ui/src', import.meta.url)) export default defineConfig({ plugins: [react()], resolve: { alias: [{ find: '@ui', replacement: uiSrc }], // 源码组合下 ui 仓有自己的 node_modules;dedupe 强制最终 bundle 用 frontend 的单副本。 dedupe: ['react', 'react-dom', 'marked', 'dompurify'], }, server: { port: 5173, proxy: { '/api': { target: 'http://127.0.0.1:8787', changeOrigin: false }, }, }, // E2E(U4 运行验收):preview 服务 dist 并把 /api 代理到被测后端(e2e.sh 注入 // PLAYWRIGHT_API_TARGET;缺省与 dev 代理同值,本地 npm run preview 也保持可用)。 preview: { port: Number(process.env.PLAYWRIGHT_PREVIEW_PORT || 4173), proxy: { '/api': { target: process.env.PLAYWRIGHT_API_TARGET || 'http://127.0.0.1:8787', changeOrigin: false }, }, }, test: { environment: 'node' }, })