vite.config.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import { fileURLToPath, URL } from 'node:url'
  2. import { defineConfig } from 'vite'
  3. import vue from '@vitejs/plugin-vue'
  4. import vueJsx from '@vitejs/plugin-vue-jsx'
  5. // https://vite.dev/config/
  6. export default defineConfig({
  7. plugins: [
  8. vue(),
  9. vueJsx(),
  10. // vueDevTools(),
  11. ],
  12. css: {
  13. postcss: './postcss.config.js'
  14. },
  15. resolve: {
  16. alias: {
  17. '@': fileURLToPath(new URL('./src', import.meta.url))
  18. },
  19. },
  20. server: {
  21. fs: {
  22. // 允许访问上层目录的node_modules (用于KaTeX字体等资源)
  23. allow: ['..']
  24. },
  25. proxy: {
  26. // ===== TTS语音合成服务代理(最具体的路径,优先匹配) =====
  27. '/api/tts': {
  28. target: 'http://172.16.29.101:22000',
  29. changeOrigin: true,
  30. rewrite: (path) => path.replace(/^\/api\/tts/, '/tts'),
  31. configure: (proxy, options) => {
  32. proxy.on('error', (err, req, res) => {
  33. console.log('TTS代理错误:', err);
  34. });
  35. proxy.on('proxyReq', (proxyReq, req, res) => {
  36. console.log('TTS代理请求:', req.method, req.url);
  37. });
  38. proxy.on('proxyRes', (proxyRes, req, res) => {
  39. console.log('TTS代理响应:', proxyRes.statusCode, req.url);
  40. });
  41. }
  42. },
  43. // ===== ReportGenerator API 代理(最具体的路径,优先匹配) =====
  44. '/api/v1/report': {
  45. target: 'http://127.0.0.1:28002',
  46. changeOrigin: true
  47. },
  48. // ===== SSE控制API代理 =====
  49. '/api/v1/sse': {
  50. target: 'http://127.0.0.1:28002',
  51. changeOrigin: true
  52. },
  53. // ===== 认证网关代理(本地/测试环境使用本地网关) =====
  54. '^/api/(auth|user|logs|captcha|ticket)': {
  55. target: 'http://127.0.0.1:28004', // 本地认证网关
  56. changeOrigin: true,
  57. },
  58. // 业务 API 代理
  59. '/apiv1': {
  60. target: 'http://127.0.0.1:22001',
  61. changeOrigin: true,
  62. }
  63. }
  64. }
  65. })