vue-cli 4.x 发布前的一些优化
1.terser-webpack-plugin 插件的配置
a、首先安装开发依赖terser-webpack-plugin
b、之后增加vue.config.js文件,并写入代码
1 // 打包去掉console 2 const TerserPlugin = require('terser-webpack-plugin') 3 module.exports = { 4 // 打包后默认使用相对路径,否则会出现首页空白的情况 5 publicPath: './', 6 // 关闭源代码映射,当为false时,打包后的文件在浏览器源码目录将不再显示webpack://相关的源码 7 // 不设置此选项,相当于把代码给别人白嫖 8 productionSourceMap: false, 9 configureWebpack: (config) => { 10 if (process.env.NODE_ENV === 'production') { 11 // 为生产环境修改配置 12 config.mode = 'production' 13 // 将每个依赖包打包成单独的js文件 14 const optimization = { 15 // 启用最小化压缩 16 minimize: true, 17 minimizer: [new TerserPlugin({ 18 // 和productionSourceMap一样 19 // sourceMap: false, 20 terserOptions: { 21 compress: { 22 // 移除所有console相关的代码,比如console.log,console.error 23 drop_console: true, 24 // 关闭自动断点功能,vue代码里插入debugger指令后,执行到对应位置会自动断线,此选项是移除debugger指令 25 drop_debugger: true, 26 // pure_funcs数组是用来配置移除指定的指令,比如console.log alert等等 27 // 移除console.log,需要配合.eslintrc.js文件里的如下设置,不然打包会出警告 28 // rules: { 29 // 'no-console': 'off', 30 // } 31 pure_funcs: ['console.log', 'console.error'] 32 } 33 } 34 })] 35 } 36 // 将optimization的所有属性合并到config里 37 Object.assign(config, { 38 optimization 39 }) 40 } else { 41 // 为开发环境修改配置 42 config.mode = 'development' 43 } 44 } 45 }