断点debuggingminfied / mangled /编译variables

着手将JavaScript源代码构build到我的工作stream程中,并且一直在寻找关于debugging源地图的特定部分的一些文档。 在下面的图片中,我正在运行压缩的Javascript代码,但通过源地图的魔力,Chromedebugging器能够重build看似未压缩的代码,供我debugging:

源地图

但是,如果您查看本地variables, someNumbersomeOtherNumber未定义。 相反,我们有ar ,这是这个函数编译的variables名称。 这对于Mozilla Firefox和Chrome都是一样的。

我试图通过源代码映射的Chrome开发工具文档 ,但我没有看到任何关于这方面的文章。 这是目前的源代码debugging的限制,是否有任何解决方法呢?

更新

我已经find铬项目问题的线程 。 它看起来不像已经或正在执行。 随着团队开始在构build系统中实现Babel来编写ES2015代码,这正变得越来越重要。 有任何团队find解决办法吗?

在右侧使用Watch Expressions 通常可以解决这个问题。 展开菜单,并使用加号button添加您的variables。 你可以使用someNumbersomeOtherNumber ,甚至someNumber + someOtherNumber

看起来已经解决了,并将在下一次Chromium更新中提供

在JavaScript源地图中映射variables名称仍然没有解决scheme,但是Babel 6有一个解决scheme。由于我们采用了ES2015,所以在开发过程中,导入的名称成为了一个主要的难题。 所以我创build了CommonJS模块转换的替代方法,它不改变名为babel-plugin-transform-es2015-modules-commonjs-simple的导入名称。

只要你不编写依赖导出dynamic绑定的模块,它就是默认的babel commonjs模块转换的一个简单replace:

 npm install --save-dev babel-plugin-transform-es2015-modules-commonjs-simple 

.babelrc

 "plugins": ["transform-es2015-modules-commonjs-simple"] 

这会将ES2015模块编译到CommonJS,而不更改导入模块的任何符号名称。 自述文件中介绍了注意事项。

但是这不会帮助你缩小/丑化,所以最好的解决scheme似乎是在开发过程中不使用缩小。 那么至less这只是一个问题,如果你必须debugging生产网站上的东西。