vue.config.js 4.6 KB

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