vue.config.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. const path = require('path')
  2. const CompressionPlugin = require('compression-webpack-plugin')
  3. function resolve(dir) {
  4. return path.join(__dirname, dir)
  5. }
  6. const port = process.env.port || process.env.npm_config_port || 80 // 端口
  7. // vue.config.js
  8. module.exports = {
  9. // 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。
  10. productionSourceMap: false,
  11. configureWebpack: (config) => {
  12. // 生产环境取消 console.log
  13. if (process.env.NODE_ENV === 'production') {
  14. config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true
  15. }
  16. },
  17. chainWebpack: (config) => {
  18. config.resolve.alias
  19. .set('@$', resolve('src'))
  20. .set('@api', resolve('src/api'))
  21. .set('@assets', resolve('src/assets'))
  22. .set('@comp', resolve('src/components'))
  23. .set('@views', resolve('src/views'))
  24. // 生产环境,开启js\css压缩
  25. if (process.env.NODE_ENV === 'production') {
  26. config.plugin('compressionPlugin').use(
  27. new CompressionPlugin({
  28. test: /\.(js|css|less)$/, // 匹配文件名
  29. threshold: 10240, // 对超过10k的数据压缩
  30. deleteOriginalAssets: false, // 删除源文件
  31. })
  32. )
  33. }
  34. },
  35. css: {
  36. loaderOptions: {
  37. less: {
  38. modifyVars: {
  39. /* less 变量覆盖,用于自定义 ant design 主题 */
  40. 'primary-color': '#1890FF',
  41. 'link-color': '#1890FF',
  42. 'border-radius-base': '4px',
  43. },
  44. javascriptEnabled: true,
  45. },
  46. },
  47. },
  48. devServer: {
  49. host: '0.0.0.0',
  50. port: port,
  51. open: true,
  52. proxy: {
  53. [process.env.VUE_APP_BASE_API]: {
  54. target: 'http://localhost:8080', // 请求本地 需要jshERP-boot后台项目
  55. changeOrigin: true,
  56. pathRewrite: {
  57. ['^' + process.env.VUE_APP_BASE_API]: '',
  58. },
  59. },
  60. },
  61. disableHostCheck: true,
  62. },
  63. lintOnSave: false,
  64. }