vue.config.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. const path = require('path');
  2. const postcssPxToViewport = require('./postcss.config');
  3. const vueSrc = 'src';
  4. const CDN_URL = process.env.CDN_URL || '';
  5. const TerserPlugin = require('terser-webpack-plugin')
  6. module.exports = {
  7. publicPath:
  8. process.env.NODE_ENV === 'production'
  9. ? CDN_URL
  10. ? CDN_URL
  11. : '/tparking/'
  12. : '/tparking/',
  13. assetsDir: 'static',
  14. // productionSourceMap: true,
  15. productionSourceMap: process.env.NODE_ENV === 'dev',
  16. css: {
  17. loaderOptions: {
  18. // 给 less-loader 传递 Less.js 相关选项
  19. less: {
  20. lessOptions: {
  21. // javascriptEnabled: true,
  22. },
  23. additionalData: `@import "~@/styles/common.less"; @import "~@/styles/uni.less";`,
  24. },
  25. // scss: {
  26. // // prependData: [path.resolve(__dirname, './src/uni.scss')],
  27. // sassOptions: {
  28. // additionalData: `@import "~@/uni.scss";`
  29. // }
  30. // },
  31. // scss: {
  32. // additionalData: `@import "~@/uni.scss";`,
  33. // },
  34. },
  35. sourceMap: true
  36. },
  37. // pluginOptions: {
  38. // 'style-resources-loader': {
  39. // preProcessor: 'less',
  40. // patterns: [path.resolve(__dirname, './src/styles/common.less')],
  41. // },
  42. // },
  43. chainWebpack: (config) => {
  44. config.module
  45. .rule('vue')
  46. .test(/\.vue$/)
  47. .use('postcss-style-px-to-viewport')
  48. .loader('postcss-style-px-to-viewport')
  49. .options(postcssPxToViewport.plugins['postcss-px-to-viewport'])
  50. .end();
  51. config
  52. .plugin('html')
  53. .tap((args) => {
  54. args[0].title = '临时停车';
  55. return args;
  56. })
  57. .end();
  58. config.module
  59. .rule('images') //.test(/\.(png|jpe?g|gif|svg)(\?.*)?$/)
  60. .use('url-loader')
  61. .tap((args) => {
  62. const newArgs = Object.assign({}, args, {
  63. limit: 4096,
  64. // 这里重要,publicPath 配置给url-loader 会不生效,必须配置到fallback里传递给file-loader
  65. fallback: {
  66. loader: 'file-loader',
  67. options: {
  68. name: '[name].[hash:8].[ext]',
  69. publicPath:
  70. process.env.NODE_ENV === 'production'
  71. ? CDN_URL + '/static/img'
  72. : '/tparking/static/img',
  73. outputPath: 'static/img',
  74. },
  75. },
  76. });
  77. return newArgs;
  78. })
  79. .end();
  80. // 编译之后清理console.log
  81. config.optimization.minimizer('vue').use(TerserPlugin, [{ terserOptions: { compress: { drop_console: true } } }])
  82. },
  83. configureWebpack: {
  84. devtool: process.env.NODE_ENV === 'dev' ? 'source-map' : undefined,
  85. resolve: {
  86. alias: {
  87. '@': path.join(__dirname, vueSrc),
  88. },
  89. },
  90. },
  91. transpileDependencies: [
  92. // can be string or regex
  93. '@stomp/stompjs',
  94. // /other-dep/
  95. ],
  96. devServer: {
  97. proxy: {
  98. '/profileApi': {
  99. target: 'https://qa-apim.kerryplus.com/c/api', //代理地址,这里设置的地址会代替axios中设置的baseURL
  100. changeOrigin: true, // 如果接口跨域,需要进行这个参数配置
  101. //ws: true, // proxy websockets
  102. //pathRewrite方法重写url
  103. pathRewrite: {
  104. '^/profileApi': '',
  105. //pathRewrite: {'^/api': '/'} 重写之后url为 http://192.168.1.16:8085/xxxx
  106. //pathRewrite: {'^/api': '/api'} 重写之后url为 http://192.168.1.16:8085/api/xxxx
  107. },
  108. },
  109. '/qaPayment': {
  110. target: 'https://qa-apim.kerryplus.com/c/api/payment/v1', //代理地址,这里设置的地址会代替axios中设置的baseURL
  111. changeOrigin: true, // 如果接口跨域,需要进行这个参数配置
  112. //ws: true, // proxy websockets
  113. //pathRewrite方法重写url
  114. pathRewrite: {
  115. '^/qaPayment': '',
  116. //pathRewrite: {'^/api': '/'} 重写之后url为 http://192.168.1.16:8085/xxxx
  117. //pathRewrite: {'^/api': '/api'} 重写之后url为 http://192.168.1.16:8085/api/xxxx
  118. },
  119. },
  120. '/msApi': {
  121. // target: 'http://172.20.50.208:8080',
  122. target: 'https://dev-kip-service-internal.kerryonvip.com/temporary-parking-service', //代理地址,这里设置的地址会代替axios中设置的baseURL
  123. // target: 'http://172.21.203.140:8080', //代理地址,这里设置的地址会代替axios中设置的baseURL 2023-2-9
  124. // target: 'http://172.21.203.20:8080', //代理地址,这里设置的地址会代替axios中设置的baseURL
  125. // target: 'http://172.21.200.89:8080', //代理地址,这里设置的地址会代替axios中设置的baseURL
  126. // target: 'http://172.21.201.227:8080', // 代理地址,这里设置的地址会代替axios中设置的baseURL
  127. changeOrigin: true, // 如果接口跨域,需要进行这个参数配置
  128. //ws: true, // proxy websockets
  129. //pathRewrite方法重写url
  130. pathRewrite: {
  131. '^/msApi': '',
  132. //pathRewrite: {'^/api': '/'} 重写之后url为 http://192.168.1.16:8085/xxxx
  133. //pathRewrite: {'^/api': '/api'} 重写之后url为 http://192.168.1.16:8085/api/xxxx
  134. },
  135. }
  136. },
  137. },
  138. };