You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

vite.config.ts 5.4KB

11 ay önce
7 ay önce
11 ay önce
11 ay önce
11 ay önce
7 ay önce
11 ay önce
11 ay önce
11 ay önce
11 ay önce
11 ay önce
11 ay önce
11 ay önce
10 ay önce
11 ay önce
11 ay önce
11 ay önce
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. })