vite.config.ts 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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:3101";
  11. const proxyTargets = apiRoutes.reduce((proxyObj, route) => {
  12. proxyObj[route] = {
  13. target: target,
  14. changeOrigin: true,
  15. secure: false,
  16. ws: true,
  17. };
  18. // 文件服务地址
  19. proxyObj['/bisheng'] = {
  20. target: "http://npcal.ai:8402",
  21. changeOrigin: true,
  22. withCredentials: true,
  23. secure: false
  24. }
  25. return proxyObj;
  26. }, {});
  27. export default defineConfig(() => {
  28. return {
  29. build: {
  30. outDir: "build",
  31. rollupOptions: {
  32. output: {
  33. manualChunks: {
  34. acebuilds: ['react-ace', 'ace-builds', 'react-syntax-highlighter', 'rehype-mathjax', 'react-markdown'],
  35. reactflow: ['reactflow'],
  36. pdfjs: ['pdfjs-dist'],
  37. reactdrop: ['react-window', 'react-beautiful-dnd', 'react-dropzone']
  38. }
  39. }
  40. }
  41. },
  42. resolve: {
  43. alias: {
  44. '@': path.resolve(__dirname, './src')
  45. }
  46. },
  47. plugins: [
  48. react(),
  49. svgr(),
  50. viteStaticCopy({
  51. targets: [
  52. {
  53. src: [
  54. 'node_modules/ace-builds/src-min-noconflict/ace.js',
  55. 'node_modules/ace-builds/src-min-noconflict/mode-json.js',
  56. 'node_modules/ace-builds/src-min-noconflict/worker-json.js',
  57. 'node_modules/ace-builds/src-min-noconflict/mode-yaml.js',
  58. 'node_modules/ace-builds/src-min-noconflict/worker-yaml.js'
  59. ],
  60. dest: 'node_modules/ace-builds/src-min-noconflict/'
  61. },
  62. {
  63. src: 'node_modules/pdfjs-dist/build/pdf.worker.min.js',
  64. dest: './'
  65. }
  66. ]
  67. }),
  68. // 打包物体积报告
  69. // visualizer({
  70. // open: true,
  71. // })
  72. ],
  73. server: {
  74. host: '0.0.0.0',
  75. port: 3001,
  76. proxy: {
  77. ...proxyTargets,
  78. },
  79. },
  80. };
  81. });