vite.config.ts 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import { defineConfig } from 'vite'
  2. import vue from '@vitejs/plugin-vue'
  3. import topLevelAwait from 'vite-plugin-top-level-await'
  4. import { resolve } from 'path'
  5. import viteCompression from 'vite-plugin-compression';//Gzip
  6. import { visualizer } from "rollup-plugin-visualizer";
  7. import { createSvgIconsPlugin } from 'vite-plugin-svg-icons' // 【svg-icons相关】
  8. import VitePluginHtmlEnv from 'vite-plugin-html-env'
  9. // https://vitejs.dev/config/
  10. export default defineConfig({
  11. define: {
  12. 'process.env': process.env,
  13. // enable hydration mismatch details in production build
  14. __VUE_PROD_HYDRATION_MISMATCH_DETAILS__: false
  15. },
  16. plugins: [vue(), viteCompression(), VitePluginHtmlEnv(), visualizer(), createSvgIconsPlugin({
  17. // 指定需要缓存的图标文件夹
  18. iconDirs: [resolve(process.cwd(), 'src/assets/svg/menu'), resolve(process.cwd(), 'src/assets/svg/business')],
  19. // 指定symbolId格式
  20. symbolId: 'icon-[dir]-[name]',
  21. svgoOptions: {
  22. plugins: [
  23. {
  24. name: 'removeAttrs',
  25. params: {
  26. attrs: ['class', 'data-name', 'fill', 'stroke']
  27. }
  28. }
  29. ]
  30. }
  31. }), topLevelAwait({
  32. promiseExportName: '__tla',
  33. promiseImportName: i => `__tla_${i}`
  34. })],
  35. base: '/',
  36. resolve: {
  37. alias: {
  38. '@': resolve(__dirname, 'src'),
  39. '~@': resolve(__dirname, 'src'),
  40. '@views': resolve(__dirname, 'src/views'),
  41. '@components': resolve(__dirname, 'src/components')
  42. },
  43. },
  44. server: {
  45. port: 1006,
  46. // open: true,
  47. https: false,
  48. base: '/',
  49. host: '0.0.0.0',
  50. strictPort: false,
  51. proxy: {
  52. '/api': {
  53. // target: 'http://localhost:8080/',
  54. target: 'http://120.25.74.229:8000/',
  55. // target: 'http://192.168.1.110:8080/',
  56. changeOrigin: true,
  57. rewrite: path => {
  58. return path.replace(/^\/api/, '')
  59. }
  60. },
  61. '/ax-node-api': {
  62. target: 'http://8.130.72.63:18061/',
  63. changeOrigin: true,
  64. rewrite: path => {
  65. return path.replace(/^\/ax-node-api/, '')
  66. }
  67. },
  68. '/EzServer6-api': {
  69. target: 'http://74.10.28.116:8090/',
  70. changeOrigin: true,
  71. rewrite: path => {
  72. return path
  73. }
  74. },
  75. '/font-api/': {
  76. target: 'http://localhost:1111/',
  77. changeOrigin: true,
  78. rewrite: path => {
  79. return path.replace(/^\/font-api/, '')
  80. }
  81. },
  82. '/ship-playback-ws-api': {
  83. target: 'http://localhost:18062/',
  84. ws: true,
  85. changeOrigin: true,
  86. rewrite: path => {
  87. return path.replace(/^\/ship-playback-ws-api/, '')
  88. }
  89. },
  90. }
  91. },
  92. build: {
  93. outDir: "seat-tools",
  94. },
  95. publicDir: 'src/out',
  96. optimizeDeps: {
  97. include: []
  98. }
  99. })