Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

vite.config.ts 5.4KB

11 månader sedan
7 månader sedan
11 månader sedan
11 månader sedan
11 månader sedan
7 månader sedan
11 månader sedan
11 månader sedan
11 månader sedan
11 månader sedan
11 månader sedan
11 månader sedan
11 månader sedan
10 månader sedan
11 månader sedan
11 månader sedan
11 månader sedan
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. import { defineConfig, loadEnv } from 'vite'
  2. import vue from '@vitejs/plugin-vue'
  3. import path from 'path'
  4. //@ts-ignore
  5. import viteCompression from 'vite-plugin-compression'
  6. import VueLayouts from 'vite-plugin-vue-layouts'
  7. import legacy from '@vitejs/plugin-legacy'
  8. import progress from 'vite-plugin-progress'
  9. import vueExtend from 'vite-plugin-vue-setup-extend'
  10. // https://vitejs.dev/config/
  11. export default defineConfig(({ command, mode }) => {
  12. //https://blog.csdn.net/huanglgln/article/details/121635053 vite获取.env.development配置环境
  13. // 使用 import.meta.env.VITE_APP_BASE_URL
  14. //loadEnv(mode, process.cwd())
  15. const env = loadEnv(mode, process.cwd())
  16. return {
  17. base: './', //打包路径
  18. plugins: [
  19. progress(),
  20. legacy({
  21. // targets: ['defaults'], // 需要兼容的目标列表,可以设置多个 , 'not IE 11'
  22. // additionalLegacyPolyfills: ['regenerator-runtime/runtime'] // 面向IE11时需要此插件
  23. }),
  24. vue(),
  25. VueLayouts(),
  26. // gzip压缩 生产环境生成 .gz 文件
  27. viteCompression({
  28. threshold: 10240,
  29. verbose: true,
  30. disable: false,
  31. algorithm: 'gzip',
  32. ext: '.gz',
  33. }),
  34. // vueExtend()
  35. ],
  36. // 配置别名
  37. resolve: {
  38. alias: {
  39. '@': path.resolve(__dirname, 'src'),
  40. '/icon': './src/assets/ioc', //图片路径别名
  41. },
  42. },
  43. define: {
  44. //定义 process
  45. 'process.env': process.env,
  46. },
  47. css: {
  48. preprocessorOptions: {
  49. scss: {
  50. //引入全局样式
  51. additionalData: '@import "@/assets/style/mian.scss";',
  52. api: 'modern-compiler',
  53. },
  54. },
  55. },
  56. entry: {
  57. index: ['babel-polyfill', './src/main.ts'],
  58. },
  59. //启动服务配置
  60. server: {
  61. host: '0.0.0.0',
  62. port: 8085,
  63. hmr: true, // 确保 HMR 启用
  64. force: true, // 强制依赖预构建(vite 3.x+)
  65. open: true, // 类型: boolean | string在服务器启动时自动在浏览器中打开应用程序;
  66. cors: true, // 类型: boolean | CorsOptions 为开发服务器配置 CORS。默认启用并允许任何源
  67. watch: {
  68. usePolling: true, // 解决 Docker/NFS 等环境下的监听问题
  69. interval: 1000, // 轮询间隔(毫秒)
  70. },
  71. proxy: {
  72. '/common': {
  73. target: 'https://medusa.etcjz.cn', //这里填入你要请求的接口的前缀
  74. changeOrigin: true, //虚拟的站点需要更管origin
  75. ws: true,
  76. secure: true, //是否https接口
  77. pathRewrite: {
  78. '^/common': '', //请求的时候使用这个api就可以
  79. },
  80. // rewrite: (path) => path.replace(/^\/common/, ''), //重写
  81. },
  82. //跨域代理
  83. '/corporateaccount': {
  84. target: process.env.VUE_APP_BASE_API,
  85. changeOrigin: true,
  86. rewrite: (path) => path.replace(/^\/api/, ''), //重写
  87. },
  88. '/api': {
  89. // target: env.VITE_APP_BASE_URL + 'ifzt',
  90. target: env.VITE_APP_BASE_URL,
  91. changeOrigin: true,
  92. },
  93. '/instorage': {
  94. target: env.VITE_APP_EXPORT_URL,
  95. changeOrigin: true,
  96. },
  97. '/minIo': {
  98. target: env.VITE_APP_UPLOAD_URL,
  99. changeOrigin: true,
  100. },
  101. '/uploadEtcFile': {
  102. target: 'http://100.65.11.2:8086',
  103. changeOrigin: true,
  104. },
  105. '/sett-minio': {
  106. target: env.VITE_APP_UPLOAD_URL,
  107. changeOrigin: true,
  108. },
  109. '/default-bucket/': {
  110. target: env.VITE_APP_UPLOAD_URL,
  111. changeOrigin: true,
  112. },
  113. // 新地址
  114. '/userw': {
  115. target: env.VITE_APP_BASE_URL_N,
  116. changeOrigin: true,
  117. },
  118. '/invw': {
  119. target: env.VITE_APP_BASE_URL_N,
  120. changeOrigin: true,
  121. },
  122. '/iaw': {
  123. target: env.VITE_APP_BASE_URL_N,
  124. changeOrigin: true,
  125. },
  126. '/settlew': {
  127. target: env.VITE_APP_BASE_URL_N,
  128. changeOrigin: true,
  129. },
  130. '/managew': {
  131. target: env.VITE_APP_BASE_URL_N,
  132. changeOrigin: true,
  133. },
  134. '/ifmw': {
  135. target: env.VITE_APP_BASE_URL_N,
  136. changeOrigin: true,
  137. },
  138. '/msgw': {
  139. target: env.VITE_APP_BASE_URL_N,
  140. changeOrigin: true,
  141. },
  142. '/iasq': {
  143. target: env.VITE_APP_BASE_URL_N,
  144. changeOrigin: true,
  145. },
  146. '/settq': {
  147. target: env.VITE_APP_BASE_URL_N,
  148. changeOrigin: true,
  149. },
  150. },
  151. },
  152. optimizeDeps: {
  153. exclude: ['your-large-dependency','some-heavy-package'], // 排除可能引起缓存问题的大型依赖
  154. },
  155. // 生产环境打包配置
  156. //去除 console debugger
  157. build: {
  158. // target: ['chrome52'],
  159. // cssTarget: ["chrome52"],
  160. rollupOptions: {
  161. output: {
  162. manualChunks: {
  163. 'vue': ['vue', 'vue-router'],
  164. 'element-plus': ['element-plus']
  165. }
  166. }
  167. // input: 'src/main.ts' // 根据您的实际入口文件路径进行设置
  168. },
  169. target: 'esnext', // 输出为现代浏览器支持的 ES 版本
  170. minify: 'terser', // 代码压缩方式
  171. cssTarget: 'chrome80', // 避免低版本 Chrome 的 CSS 兼容问题
  172. terserOptions: {
  173. compress: {
  174. //生产环境移除 console
  175. drop_console: true,
  176. drop_debugger: true,
  177. },
  178. },
  179. },
  180. }
  181. })