javascript - 我的 Closure 编译的源映射有什么问题?

标签 javascript google-chrome-devtools google-closure firefox-developer-tools

我按照描述使用 Closure 编译了一个小测试 here :

使用java -jar compiler.jar --js test.js --create_source_map ./test-min.js.map --source_map_format=V3 --js_output_file test-min.js我有:

HTML:

<html>
<body>
<canvas id="doodle" height="200" width="200"></canvas>

<script src="test-min.js"></script>
</body>
</html>

JS test-min.js:

(function(){for(var b=document.getElementById("doodle").getContext("2d"),a=0;100>a;a++)b.fillStyle="rgb(200,0,0,0.1",b.fillRect(10*a,10,55,50*a),b.fillStyle="rgba(0, 0, 200, 0.1)",b.fillRect(30,30*a,55,50*a)})();
//# sourceMappingURL=test-min.js.map

JS test-min.js.map:

{
"version":3,
"file":"test-min.js",
"lineCount":1,
"mappings":"AAAC,SAAQ,EAAG,CAEV,IADD,IAAIA,EAAMC,QAAAC,eAAA,CAAwB,QAAxB,CAAAC,WAAA,CAA6C,IAA7C,CAAV,CACUC,EAAE,CAAX,CAAgB,GAAhB,CAAcA,CAAd,CAAqBA,CAAA,EAArB,CACCJ,CAAAK,UAIA,CAJgB,iBAIhB,CAHAL,CAAAM,SAAA,CAAc,EAAd,CAAiBF,CAAjB,CAAoB,EAApB,CAAwB,EAAxB,CAA4B,EAA5B,CAA+BA,CAA/B,CAGA,CADAJ,CAAAK,UACA,CADgB,sBAChB,CAAAL,CAAAM,SAAA,CAAc,EAAd,CAAkB,EAAlB,CAAqBF,CAArB,CAAwB,EAAxB,CAA4B,EAA5B,CAA+BA,CAA/B,CAPS,CAAX,CAAA;",
"sources":["test.js"],
"names":["ctx","document","getElementById","getContext","i","fillStyle","fillRect"]
}

全部在同一个文件夹中。但是,Firefox 和 Chrome 开发工具都不会显示源映射中未编译的源代码。我是否做错了什么,或者这是最新的 Closure 编译器中的错误?

最佳答案

这些文件对我来说看起来不错,我刚刚使用最新的闭包编译器尝试过,没有出现任何问题。由于您在问题中没有提及这两件事,因此您应该验证以下内容:

  • 确保原始 .js 文件 test.js 位于同一目录中。源映射告诉浏览器如何将缩小/编译的文件中的行映射到原始源 - 但它仍然需要原始源。

  • 确保 JavaScript 源映射支持已启用。在 Chrome 中,在“设置”的下查找JavaScript 源映射支持。在 Firefox 中,选中调试器选项中的“显示原始源代码”。

如果您设置了这些内容,它应该可以正常工作。请注意,如果您进入源面板并单击 min.js 文件,您仍然可以看到缩小文件的内容。但是,如果您在非缩小文件中设置断点,它应该可以正常工作。

同样,如果您的代码中有异常(并且打开了异常中断),当您进入调试器时,它应该显示非缩小代码中异常发生的位置.

另请参阅:

希望这有帮助。

关于javascript - 我的 Closure 编译的源映射有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21926241/

相关文章:

google-chrome - 谷歌浏览器显示灰色圆圈光标

javascript - chrome devtools 时间线中的长帧调试

jquery - Google Closure --process_jquery_primitives 问题(使用 Jquery 导入)

javascript - 使用谷歌闭包库将 url 打开到拆分面板中

javascript - 在表单提交时调用 `componentDidUpdate`

javascript - 我试图从 Openweather API 获取响应,但收到 404

javascript - 将函数从 php 传递给 jquery

javascript - 如果未安装 Chromecast 扩展程序或使用隐身模式,Google Chromecast 发件人错误

json - 谷歌关闭 XhrIo

javascript - jquery-ui datepicker 更改 z-index