import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import { resolve } from 'path' export default defineConfig(({ mode }) => ({ base: '/', plugins: [vue()], resolve: { alias: [ { find: '@', replacement: resolve(__dirname, 'src') }, // logicflow 仅提供 UMD bundle,Rollup 当 ESM 处理会 TDZ,强制走 CJS 入口 { find: /^@logicflow\/core$/, replacement: '@logicflow/core/dist/entry.js' }, { find: /^@logicflow\/extension$/, replacement: '@logicflow/extension/cjs/index.js' } ] }, build: { sourcemap: mode !== 'production', chunkSizeWarningLimit: 1000, rollupOptions: { output: { // 函数式分 chunk:将 logicflow 所有模块锁在一个 chunk 内,避免跨 chunk 循环引用 manualChunks(id) { if (id.includes('@logicflow')) return 'logicflow' if (id.includes('element-plus')) return 'element-plus' if (id.includes('vue') || id.includes('vue-router') || id.includes('pinia')) return 'vue-vendor' } } } }, server: { port: 3000, proxy: { '/api': { target: 'http://localhost:8080', changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, '') }, '/uploads': { target: 'http://localhost:8080', changeOrigin: true }, '/analysis': { target: 'http://localhost:8080', changeOrigin: true } } } }))