Vue-cli 压缩js去掉 console.log

  当我使用 vue-cli 打包生产版本的时候,发现竟然控制台能打印我所有的信息, what???? 这不符合常理啊

  然后查了 vue-cli 官网

  上面写了很多实例,也解释了很多,但是,怎么拼,也搞不出来啊。。。。。。

  最后,无奈在 configureWebpack 中 打印 config 知道了 插件配置选项放在一个对象里面

  于是我就想,既然是一个数组,或许我可以push进一个新的 配置实例,或者我直接改变 里面相应的实例??

  不多说了,直接看吧。。。。

  选项配置可以去 uglifyjs-webpack-plugin github 查看

方法一:直接往vue-cli 配置好的对象添加属性

我们打印 config.optimization.minimizer 可以看到 是一个 uglifyjs 对象

如果我们要添加其他选项,那么我们只要往这个对象里面添加就可以了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

[ UglifyJsPlugin {
options:
{ test: /\.js(\?.*)?$/i,
warningsFilter: [Function],
extractComments: false,
sourceMap: true,
cache: true,
cacheKeys: [Function],
parallel: true,
include: undefined,
exclude: undefined,
minify: undefined,
uglifyOptions: [Object] } } ]


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

// 项目根目录下 vue.config.js

module.exports = {

configureWebpack: config => {

var uglifyOptions = config.optimization.minimizer[0].options.uglifyOptions.compress
uglifyOptions.warnings=false
uglifyOptions.drop_console=true
uglifyOptions.drop_debugger=true
uglifyOptions.pure_funcs=['console.log'] //移除console
},

}

方法二:返回一个 uglifyjs 实例,让 vue-cli 自己合并配置选项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

// 项目根目录下 vue.config.js

var uglifyjs = require("uglifyjs-webpack-plugin")

module.exports = {
configureWebpack: config => {
config.optimization.minimizer.push(
new uglifyjs({
uglifyOptions: {
compress: {
warnings: false,
drop_console: true,//console
drop_debugger: true,
pure_funcs: ['console.log']//移除console
}
}
})
)
},
}

坚持原创技术分享,您的支持将鼓励我继续创作!