使用源映射 (gulp-sourcemaps) 时 Chrome 中的断点问题

Breakpoint issues in Chrome while using source maps (gulp-sourcemaps)

我在 gulp-sourcemaps 和 gulp-uglify 一起工作时遇到了一些奇怪的问题,基本上,我们使用 gulp-uglify 来缩小我们的代码和 gulp-sourcemaps创建项目的source map,在控制台调试JS代码。

所以今天,在调试时我注意到 Google Chrome 似乎正在执行一个 if 语句,即使我知道条件没有检索到真实值,我有这样的 if if ('string-A' === 'string-B') { image.onerror = null } 因此,我在 onerror 赋值处添加了一个断点并且 chrome 是在那里暂停我的代码。一个很奇怪的案例。

我开始调试,所以我更改了缩小文件的源代码,以检查缩小代码是否导致了问题,这是缩小的代码块:

l === i && i !== t ?哦? a.src = n : e(a) : l === n ? e(a) : l === t && (a.onerror = null)

我在那里没有看到任何问题,我检查了一些新的断点,并且突出显示的代码段从未执行过,因为 l === t 按照它应该的方式检索 false。然后我再次使用源文件只是为了验证图像的 onerror 值从未像我想的那样改变,所以在尝试将缩小文件与源匹配时,Chrome 核心似乎是一个错误。 Chrome好像停在了一个随机的地方。

有没有办法避免这些问题?我问这个是因为我们花了很长时间来测试,实际上输出是一样的,我们只是验证了这不是我们这边的问题。

在我的例子中,我们有一些注释之前没有从源代码中删除,所以这是源代码和缩小文件不匹配的原因。