hen*_*enk 17 debugging google-chrome webstorm meteor
我在用
METEOR@1.4.4.2
WebStorm@2017.1.1
Chrome@58.0.3029.110 (64-bit)
macOS Sierra 10.12.5
ecmascript@0.7.3
ecmascript-runtime@0.3.15
Run Code Online (Sandbox Code Playgroud)
最近,调试器开始在错误的线路上停止,但只是在视觉上,大多数情况下它就像实际断点后面的8-14行.
例如

*橙色条表示谷歌浏览器中的断点
控制台输出:
另外,正如您所看到的,某些行变暗,这意味着我无法在浏览器中设置断点.
WebStorm内部调试器中的行为是相同的.所以我认为这不是Chrome的错.看起来源映射已被破坏.我不知道是WebStorm,还是Meteor.在这种情况下,调试非常困难......
Mas*_*rAM 10
很难说是肯定的,但是您遇到的问题似乎与导致Meteor生成错误源映射的错误有关.
这不是浏览器的"错误".它只显示项目中源映射传递给它的代码和位置.
的app.js文件和源地图(app.js.map)由流星生成过程生成并从供应.meteor/local/build/programs/web.browser/app目录.
该.map文件负责告诉浏览器如何显示原始源,以及生成的app.js文件中的哪些段映射到原始源代码中的哪些段.
关于源地图的技术方面的一个很好的解释可以在这里找到.
您可以在线查看源地图,并查看使用此工具的地图(选择custom...并拖放两者.js和.map文件.
作为构建过程的一部分,Meteor使用babel-compilerMeteor软件包.在某些时候,一个错误导致在babel转换后产生无效映射.
该错误目前在GitHub上进行跟踪,而Meteor人员似乎正在关注该问题.
目前,没有快速简便的解决方案.
你可以:
最后一个选项是@hwilson为了开始通过a找到错误而做的git bisect.
您可以参考Meteor开发人员文档,了解有关从结帐运行流星工具的方法的详细信息,但事项的要点如下:
首先,确保您的代码(包括.meteor/versions和代码.meteor/packages已经签出到源代码管理中),因为您可能需要暂时将它们搞砸,并且一旦修复了错误就会想要恢复它们.
git clone --recursive https://github.com/meteor/meteor.git到你选择的目录(例如,/home/yourname/src/remote.cd meteor.git checkout 25a89b5 获得最后一次已知的良好提交.git submodule update --init --recursive 结账后确保一切都还是黄金../meteor --help 签出版本开始 .meteor/packages文件中删除版本信息,因为它们可能与您的结帐提供的版本信息不兼容./home/yourname/src/remote/meteor/meteor run.这将运行检出的Meteor版本.您可能需要执行meteor reset(警告:这会清除本地mongo数据库)或至少清理一些.meteor/local(例如,源映射)以使其工作,但这可能是不必要的.
对于我认为将在不久的将来解决的错误,这是相当多的努力,但我决定部分包含此信息,以便用作未来源图相关问题的文档.
| 归档时间: |
|
| 查看次数: |
3541 次 |
| 最近记录: |