vite.config.ts 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. import react from "@vitejs/plugin-react-swc";
  2. import { visualizer } from "rollup-plugin-visualizer";
  3. import { defineConfig } from "vite";
  4. import { viteStaticCopy } from 'vite-plugin-static-copy';
  5. import svgr from "vite-plugin-svgr";
  6. const apiRoutes = ["^/api/", "/health"];
  7. import path from "path";
  8. // Use environment variable to determine the target.
  9. // const target = process.env.VITE_PROXY_TARGET || "http://localhost:7860";
  10. const target = process.env.VITE_PROXY_TARGET || "http://npcall.ai:3003";
  11. // const target = process.env.VITE_PROXY_TARGET || "http://172.30.96.205:7880";
  12. const proxyTargets = apiRoutes.reduce((proxyObj, route) => {
  13. proxyObj[route] = {
  14. target: target,
  15. changeOrigin: true,
  16. secure: false,
  17. ws: true,
  18. };
  19. // 文件服务地址
  20. proxyObj['/bisheng'] = {
  21. target: "http://npcal.ai:8402",
  22. changeOrigin: true,
  23. withCredentials: true,
  24. secure: false
  25. }
  26. return proxyObj;
  27. }, {});
  28. export default defineConfig(() => {
  29. return {
  30. build: {
  31. outDir: "build",
  32. rollupOptions: {
  33. output: {
  34. manualChunks: {
  35. acebuilds: ['react-ace', 'ace-builds', 'react-syntax-highlighter', 'rehype-mathjax', 'react-markdown'],
  36. reactflow: ['reactflow'],
  37. pdfjs: ['pdfjs-dist'],
  38. reactdrop: ['react-window', 'react-beautiful-dnd', 'react-dropzone']
  39. }
  40. }
  41. }
  42. },
  43. resolve: {
  44. alias: {
  45. '@': path.resolve(__dirname, './src')
  46. }
  47. },
  48. plugins: [
  49. react(),
  50. svgr(),
  51. viteStaticCopy({
  52. targets: [
  53. {
  54. src: [
  55. 'node_modules/ace-builds/src-min-noconflict/ace.js',
  56. 'node_modules/ace-builds/src-min-noconflict/mode-json.js',
  57. 'node_modules/ace-builds/src-min-noconflict/worker-json.js',
  58. 'node_modules/ace-builds/src-min-noconflict/mode-yaml.js',
  59. 'node_modules/ace-builds/src-min-noconflict/worker-yaml.js'
  60. ],
  61. dest: 'node_modules/ace-builds/src-min-noconflict/'
  62. },
  63. {
  64. src: 'node_modules/pdfjs-dist/build/pdf.worker.min.js',
  65. dest: './'
  66. }
  67. ]
  68. }),
  69. // 打包物体积报告
  70. // visualizer({
  71. // open: true,
  72. // })
  73. ],
  74. server: {
  75. host: '0.0.0.0',
  76. port: 3001,
  77. proxy: {
  78. ...proxyTargets,
  79. },
  80. },
  81. };
  82. });