下記をwebpack.mix.jsに追記すると、production用 (NODE_ENV=production) にビルドするだけでpure_funcsで指定しているconsole.debugとconsole.logを削除してくれる。
if (mix.inProduction()) {
mix.options({
terser: {
terserOptions: {
compress: {
// Drop these function calls. Keep console.error and etc.
pure_funcs: [
'console.debug',
'console.log'
]
}
}
}
});
}
上記設定だと、console.wanrとconsole.errorは削除されずに残る。
console.*をすべて削除したい場合はpure_funcsを使う代わりに下記でOK。
if (mix.inProduction()) {
mix.options({
terser: {
terserOptions: {
compress: {
drop_console: true // This drops all console.* calls
}
}
}
});
}
Laravel Mix 5.0.9で確認。
参考: https://github.com/webpack-contrib/terser-webpack-plugin/issues/57