问题原因 :配置生产去除 console.log 时出现了报错
// vue.config.js
module.exports = {
optimization: {
minimizer: [
new UglifyJsPlugin({
uglifyOptions: {
compress: {
warnings: false,
drop_console: true,//console
drop_debugger: false,
pure_funcs: ['console.log']//移除console
}
}
})
]
}
}
出现报错 UglifyJs
DefaultsError: warnings is not a supported option
找到vue.config.js加入sourceMap: false, parallel: true,
// vue.config.js
module.exports = {
configureWebpack: config => {
if (process.env.NODE_ENV === 'production') {
config.plugins.push(
new UglifyJsPlugin({
uglifyOptions: {
compress: {
warnings: false,
drop_debugger: true, // console
drop_console: true,
pure_funcs:['console.log'] // 移除console
},
},
sourceMap: false,
parallel: true,
})
)
}
},
}
再次重新进行build打包
出现报错 warnings is not a supported option
可见使用 uglifyjs-webpack-plugin 在这里无法实现去除控制台的信息。
使用 terser-webpack-plugin 代替,实现生产去除 console.log
// vue.config.js
const TerserPlugin = require('terser-webpack-plugin')
module.exports = {
configureWebpack: {
optimization: {
minimizer: [
new TerserPlugin({
terserOptions: {
ecma: undefined,
warnings: false,
parse: {},
compress: {
drop_console: true,
drop_debugger: false,
pure_funcs: ['console.log'] // 移除console
}
},
}),
]
}
},
}
再重新打包就没问题了