vite.config.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import { defineConfig } from 'vite'
  2. import vue from '@vitejs/plugin-vue'
  3. import { resolve } from 'path'
  4. export default defineConfig(({ mode }) => ({
  5. base: '/',
  6. plugins: [vue()],
  7. resolve: {
  8. alias: [
  9. { find: '@', replacement: resolve(__dirname, 'src') },
  10. // logicflow 仅提供 UMD bundle,Rollup 当 ESM 处理会 TDZ,强制走 CJS 入口
  11. { find: /^@logicflow\/core$/, replacement: '@logicflow/core/dist/entry.js' },
  12. { find: /^@logicflow\/extension$/, replacement: '@logicflow/extension/cjs/index.js' }
  13. ]
  14. },
  15. build: {
  16. sourcemap: mode !== 'production',
  17. chunkSizeWarningLimit: 1000,
  18. rollupOptions: {
  19. output: {
  20. // 函数式分 chunk:将 logicflow 所有模块锁在一个 chunk 内,避免跨 chunk 循环引用
  21. manualChunks(id) {
  22. if (id.includes('@logicflow')) return 'logicflow'
  23. if (id.includes('element-plus')) return 'element-plus'
  24. if (id.includes('vue') || id.includes('vue-router') || id.includes('pinia')) return 'vue-vendor'
  25. }
  26. }
  27. }
  28. },
  29. server: {
  30. port: 3000,
  31. proxy: {
  32. '/api': {
  33. target: 'http://localhost:8080',
  34. changeOrigin: true,
  35. rewrite: (path) => path.replace(/^\/api/, '')
  36. },
  37. '/uploads': {
  38. target: 'http://localhost:8080',
  39. changeOrigin: true
  40. },
  41. '/analysis': {
  42. target: 'http://localhost:8080',
  43. changeOrigin: true
  44. }
  45. }
  46. }
  47. }))