当使用带有 Terser mangle 选项的 webpack 5 时。出于该项目的业务原因,我们必须在生产中启用 mangling。
optimization: {
minimize: true,
minimizer: [
new TerserPlugin({
parallel: true,
terserOptions: {
toplevel: true,
mangle: {
properties: {
keep_quoted: true,
debug: true,
},
},
}
}),
]
}
debug:true
为了便于举例说明问题,我将保留该选项。
在外部加载 jQuery(想想 Shopify 或我们从窗口上下文访问 jQuery 的其他环境)。
// $ is global, via webpack externs
this.jTitle = $('title').first();
变成
// $ is global, via webpack externs
this._$jTitle$_=$("title")._$first$_()
我想让它变成
// $ is global, via webpack externs
this._$jTitle$_=$("title").first()
这发生在所有代码库中,破坏了包,我无法创建一个正常工作的包。
更新:
举例说明问题的 repo 在这里(分支名称很重要,小心!example-import-problem 是有问题的分支):https ://github.com/vladnicula/terser-for-the-win/tree/示例导入问题