标识符混淆后变量名变乱码,怎么调试?

萌新.凡敬 阅读 17

我用 webpack + terser 做了代码混淆,开启了 mangle 选项,结果所有变量名都变成 a、b、c 这种短名字了。现在线上报错根本看不懂堆栈,本地也没法对应源码。

我试过加 source-map,但混淆后的变量在 Chrome DevTools 里还是显示成乱码,比如 function r(t){var e=...,完全没法定位问题。有没有办法在保留混淆的同时让调试更友好?

我来解答 赞 3 收藏
二维码
手机扫码查看
1 条解答
迷人的永景
最简单的办法是给 terser 的 mangle 加个 properties: { regex: /^_/ },让所有以下划线开头的变量名不被混淆,然后在关键函数或变量前手动加下划线,比如 function _main(){...},调试时直接搜 _ 就能定位到你写的代码,其他地方照常混淆不耽误压缩。

terser: {
mangle: {
properties: {
regex: /^_/
}
}
}
点赞 2
2026-02-26 19:04