Webpack 5 生产环境需显式配置 TerserPlugin 的 terserOptions:设 drop_console: true 删除所有 console 调用,drop_debugger: true 移除 debugger 语句,并确保 mode: 'production' 且 minimize: true。

Webpack 5 默认内置了 TerserPlugin,但若需自定义去除 console(如 console.log、console.warn 等),仍需显式配置其 terserOptions。关键在于:只在生产环境启用,避免影响开发体验;同时注意区分 drop_console 和 pure_funcs 的作用范围。
确认环境并启用最小化
Webpack 的代码压缩(即 minimize)默认仅在 mode: 'production' 下开启。因此确保:
- 打包命令使用
--mode production,或配置中明确设置mode: 'production' -
optimization.minimize设为true(生产环境下通常已默认开启)
配置 TerserPlugin 移除 console
在 webpack.config.js 中添加或修改 optimization.minimizer:
用于端到端视频本地化流程的轻量编排器,路由至四个专注子技能——/wjs-transcribing-audio、/wjs-translating-subtitles...
const TerserPlugin = require('terser-webpack-plugin');
<p>module.exports = {
mode: 'production',
optimization: {
minimize: true,
minimizer: [
new TerserPlugin({
terserOptions: {
compress: {
drop_console: true, // 删除所有 console.<em> 调用(log/warn/error/dir/table 等)
drop_debugger: true, // 同时移除 debugger 语句
// pure_funcs: ['console.log', 'console.warn'] // 更精细控制:只删指定方法(可选)
},
format: {
comments: false // 删除所有注释(含 /</em> */ 和 //)
}
}
})
]
}
};
说明:drop_console: true 是最常用且覆盖最全的方式,它会移除所有以 console. 开头的调用;若项目中只允许保留 console.error,则改用 pure_funcs 列出需删除的具体函数。
TypeScript 项目无需额外适配
Terser 原生支持 ES6+ 语法,包括 TypeScript 编译后的 JS(如箭头函数、解构、可选链等)。只要你的 tsconfig.json 输出目标(target)不低于 ES2015,Terser 就能正确处理。无需额外 loader 或插件来配合 console 清理。
验证是否生效
打包后检查生成的 JS 文件(如 dist/js/app.xxx.js):
- 搜索
console.log或console.warn—— 应无匹配结果 - 搜索
/*或//—— 注释应已消失 - 若仍有残留,确认是否误将配置写在
development分支下,或mode未正确设为production

















