vue.config.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. const TerserPlugin = require('terser-webpack-plugin')
  2. module.exports = {
  3. assetsDir: 'static', // outputDir的静态资源(js、css、img、fonts)目录
  4. publicPath: './', // 静态资源路径(默认/,如果不改打包后会白屏)
  5. devServer: {
  6. host: '192.168.2.97',
  7. port: 8080,
  8. // 跨域
  9. proxy: {
  10. [process.env.VUE_APP_BASE_API]: {
  11. target: 'http://localhost:8082', //要跨域的地址,接口对接使用
  12. changeOrigin: true, // 允许跨域
  13. pathRewrite: {
  14. ['^' + process.env.VUE_APP_BASE_API]: '',
  15. },
  16. ws: false,
  17. },
  18. },
  19. },
  20. transpileDependencies: true,
  21. lintOnSave: false,
  22. //生产环境是不需要sourceMap的,如下配置可以去除
  23. //问题: vue项目打包之后js文件夹中,会自动生成一些map文件,占用相当一部分空间
  24. //sourceMap资源映射文件,存的是打包前后的代码位置,方便开发使用,这个占用相当一部分空间。
  25. //map文件的作用在于:项目打包后,代码都是经过压缩加密的,如果运行时报错,输出的错误信息无法准确得知是哪里的代码报错,有了map就可以像未加密的代码一样,准确的输出是哪一行哪一列有错。
  26. productionSourceMap: false, //清除sourceMap(可以减小一半大小如:压缩包7M,使用后3M多)
  27. // 打包后禁止在控制台输出console.log
  28. configureWebpack: (config) => {
  29. if (process.env.NODE_ENV === 'production') {
  30. config.plugins.push(
  31. new TerserPlugin({
  32. terserOptions: {
  33. ecma: undefined,
  34. warnings: false,
  35. parse: {},
  36. compress: {
  37. drop_console: true,
  38. drop_debugger: false,
  39. // pure_funcs: ['console.log'], // 移除console
  40. },
  41. },
  42. })
  43. )
  44. }
  45. },
  46. }