断点debuggingminfied / mangled /编译variables
着手将JavaScript源代码构build到我的工作stream程中,并且一直在寻找关于debugging源地图的特定部分的一些文档。 在下面的图片中,我正在运行压缩的Javascript代码,但通过源地图的魔力,Chromedebugging器能够重build看似未压缩的代码,供我debugging:
但是,如果您查看本地variables, someNumber
和someOtherNumber
未定义。 相反,我们有a
和r
,这是这个函数编译的variables名称。 这对于Mozilla Firefox和Chrome都是一样的。
我试图通过源代码映射的Chrome开发工具文档 ,但我没有看到任何关于这方面的文章。 这是目前的源代码debugging的限制,是否有任何解决方法呢?
更新 :
我已经find铬项目问题的线程 。 它看起来不像已经或正在执行。 随着团队开始在构build系统中实现Babel来编写ES2015代码,这正变得越来越重要。 有任何团队find解决办法吗?
在右侧使用Watch Expressions
通常可以解决这个问题。 展开菜单,并使用加号button添加您的variables。 你可以使用someNumber
和someOtherNumber
,甚至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生产网站上的东西。