vite.config.mjs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. import { defineConfig, loadEnv } from 'vite';
  2. import vue from '@vitejs/plugin-vue';
  3. // import vueDevTools from 'vite-plugin-vue-devtools';
  4. import { visualizer } from 'rollup-plugin-visualizer';
  5. import viteCompression from 'vite-plugin-compression';
  6. // import viteImagemin from 'vite-plugin-imagemin';
  7. /**
  8. * 按需加载
  9. * @see https://arco.design/vue/docs/start#%E6%8C%89%E9%9C%80%E5%8A%A0%E8%BD%BD%EF%BC%88%E6%A8%A1%E6%9D%BF%EF%BC%89
  10. */
  11. import AutoImport from 'unplugin-auto-import/vite';
  12. import Components from 'unplugin-vue-components/vite';
  13. import { ArcoResolver } from 'unplugin-vue-components/resolvers';
  14. import { config_compression, config_imagemin } from './scripts/vite-conf';
  15. // https://vitejs.dev/config/
  16. export default defineConfig(({ mode }) => {
  17. const env = loadEnv(mode, process.cwd());
  18. const targetUrl = env.VITE_API_BASE_URL; // 从环境变量中获取
  19. return {
  20. /**
  21. * 项目根目录
  22. * @see https://cn.vite.dev/config/shared-options.html#root
  23. */
  24. root: './src',
  25. /**
  26. * 静态资源目录,相对于 src/index.html 文件
  27. * @see https://cn.vite.dev/config/shared-options.html#publicdir
  28. */
  29. publicDir: '../public',
  30. server: {
  31. port: 5173,
  32. host: '0.0.0.0', // IP配置,支持从IP启动
  33. proxy: {
  34. '/console': {
  35. // target: targetUrl, // 使用从环境变量中获取的地址
  36. // target: 'http://smartai.com:8163'
  37. target: 'http://192.168.20.119:13002',
  38. changeOrigin: true,
  39. secure: false,
  40. ws: true,
  41. cors: true,
  42. rewrite: (path) => path.replace(/^\/proxy_url/, '')
  43. },
  44. '/api/': {
  45. // target: targetUrl, // 使用从环境变量中获取的地址
  46. // target: 'http://smartai.com:8163'
  47. target: 'http://192.168.20.119:13002',
  48. changeOrigin: true,
  49. secure: false,
  50. ws: true,
  51. cors: true,
  52. rewrite: (path) => path.replace(/^\/proxy_url/, '')
  53. }
  54. }
  55. },
  56. build: {
  57. /**
  58. * 构建输出目录,相对于 src/index.html 文件
  59. * @see https://cn.vite.dev/config/build-options.html#build-outdir
  60. */
  61. outDir: '../dist',
  62. emptyOutDir: true,
  63. rollupOptions: {
  64. output: {
  65. manualChunks: {
  66. 'vue-vendor': ['vue', 'vue-router', 'pinia']
  67. }
  68. }
  69. },
  70. terserOptions: {
  71. output: {
  72. // 去掉注释内容
  73. comments: true
  74. }
  75. }
  76. },
  77. define: {
  78. 'window.VITE_API_BASE_URL': JSON.stringify(env.VITE_API_BASE_URL)
  79. },
  80. plugins: [
  81. vue(),
  82. // /**
  83. // * @see https://devtools.vuejs.org/guide/vite-plugin
  84. // */
  85. // vueDevTools({
  86. // launchEditor: 'code'
  87. // }),
  88. visualizer({ open: false }),
  89. viteCompression(config_compression),
  90. // viteImagemin(config_imagemin),
  91. /**
  92. * 按需加载
  93. * @see https://arco.design/vue/docs/start#%E6%8C%89%E9%9C%80%E5%8A%A0%E8%BD%BD%EF%BC%88%E6%A8%A1%E6%9D%BF%EF%BC%89
  94. */
  95. AutoImport({
  96. resolvers: [ArcoResolver()]
  97. }),
  98. Components({
  99. resolvers: [
  100. ArcoResolver({
  101. sideEffect: true
  102. })
  103. ]
  104. })
  105. ]
  106. };
  107. });