Newer
Older
urbanLifeline_YanAn / vite.config.js
@zhangqy zhangqy on 21 Oct 5 KB 修改显示层级
  1. import { defineConfig, loadEnv } from 'vite';
  2. import path from 'path';
  3. import createVitePlugins from './vite/plugins';
  4. import postCssPxToRem from 'postcss-pxtorem';
  5. import autoprefixer from 'autoprefixer';
  6.  
  7. const Timestamp = new Date().getTime(); //随机时间戳
  8.  
  9. // const targetUrl = 'http://192.168.48.145:13000'; //张鸿志
  10. const zhz = 'http://192.168.20.5:13002'; //张鸿志
  11. // const targetUrl = 'http://192.168.16.105:13000'; //张亚辉
  12. const targetUrl = 'https://server2.wh-nf.cn:8088/prod-api'; //线上
  13.  
  14. // https://vitejs.dev/config/
  15. export default defineConfig(({ mode, command }) => {
  16. const env = loadEnv(mode, process.cwd());
  17. const { VITE_APP_ENV } = env;
  18. return {
  19. // 部署生产环境和开发环境下的URL。
  20. // 默认情况下,vite 会假设你的应用是被部署在一个域名的根路径上
  21. // 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
  22. base: VITE_APP_ENV === 'production' ? '/' : '/',
  23. // 是否开启eslint保存检测
  24. lintOnSave: false,
  25. plugins: createVitePlugins(env, command === 'build'),
  26. resolve: {
  27. // https://cn.vitejs.dev/config/#resolve-alias
  28. alias: {
  29. // 设置路径
  30. '~': path.resolve(__dirname, './'),
  31. // 设置别名
  32. '@': path.resolve(__dirname, './src'),
  33. },
  34. // https://cn.vitejs.dev/config/#resolve-extensions
  35. extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue'],
  36. },
  37. // vite 相关配置
  38. server: {
  39. port: 8888,
  40. host: true,
  41. hot: true, //自动保存
  42. cors: true,
  43. hmr: true, //vue3 vite配置热更新不用手动刷新
  44. open: true,
  45. proxy: {
  46. '/business': {
  47. target: targetUrl, //测试服务
  48. changeOrigin: true,
  49. rewrite: p => p.replace(/^\/business/, '/business'),
  50. },
  51. '/system': {
  52. target: targetUrl, //测试服务
  53. changeOrigin: true,
  54. rewrite: p => p.replace(/^\/system/, '/system'),
  55. },
  56. '/auth': {
  57. target: targetUrl, //测试服务
  58. changeOrigin: true,
  59. rewrite: p => p.replace(/^\/auth/, '/auth'),
  60. },
  61. '/code': {
  62. target: targetUrl, //测试服务
  63. changeOrigin: true,
  64. rewrite: p => p.replace(/^\/code/, '/code'),
  65. },
  66. '/amap': {
  67. target: 'https://restapi.amap.com', //geocode服务
  68. changeOrigin: true,
  69. rewrite: p => p.replace(/^\/amap/, ''),
  70. },
  71. '/prod-api': {
  72. target: targetUrl, //测试服务
  73. changeOrigin: true,
  74. logLevel: 'debug',
  75. rewrite: p => p.replace(/^\/prod-api/, ''),
  76. },
  77. // '/zhz': {
  78. // target: zhz, //测试服务
  79. // changeOrigin: true,
  80. // logLevel: 'debug',
  81. // rewrite: p => p.replace(/^\/zhz/, ''),
  82. // },
  83. // 洪山服务
  84. '/hsApi': {
  85. target: 'http://42.193.13.68:8104', //测试服务
  86. changeOrigin: true,
  87. logLevel: 'debug',
  88. rewrite: p => p.replace(/^\/hsApi/, ''),
  89. },
  90. //百度全景
  91. '/bdApi': {
  92. // target: 'http://192.168.16.34:8105/', //测试服务
  93. target: 'https://server2.wh-nf.cn:8088/', //测试服务
  94. changeOrigin: true,
  95. logLevel: 'debug',
  96. rewrite: p => p.replace(/^\/bdApi/, ''),
  97. },
  98. },
  99. },
  100. css: {
  101. postcss: {
  102. plugins: [
  103. {
  104. postcssPlugin: 'internal:charset-removal',
  105. AtRule: {
  106. charset: atRule => {
  107. if (atRule.name === 'charset') {
  108. atRule.remove();
  109. }
  110. },
  111. },
  112. },
  113. postCssPxToRem({
  114. // 自适应,px>rem转换
  115. rootValue: 192, // 根据设计图尺寸写,设计图是 1920,就写 192
  116. propList: ['*'], // 需要转换的属性,这里选择全部都进行转换
  117. selectorBlackList: ['-nopx'], // 过滤掉-nopx结尾的class,不进行rem转换
  118. }),
  119. autoprefixer({
  120. // 自动添加前缀
  121. overrideBrowserslist: [
  122. 'Android 4.1',
  123. 'iOS 7.1',
  124. 'Chrome > 31',
  125. 'ff > 31',
  126. 'ie >= 8',
  127. //'last 2 versions', // 所有主流浏览器最近2个版本
  128. ],
  129. grid: true,
  130. }),
  131. ],
  132. },
  133. },
  134. build: {
  135. sourcemap: false,
  136. outDir: 'YanAn',
  137. rollupOptions: {
  138. output: {
  139. chunkFileNames: `static/js/[name].[hash]${Timestamp}.js`,
  140. entryFileNames: `static/js/[name].[hash]${Timestamp}.js`,
  141. assetFileNames: `static/[ext]/[name].[hash]${Timestamp}.[ext]`,
  142. },
  143. brotliSize: true, // 不统计
  144. target: 'esnext',
  145. minify: 'esbuild', // 混淆器,terser构建后文件体积更小
  146. },
  147. },
  148. };
  149. });