2024 Clojure现状调查中分享您的想法!

欢迎!请查看关于页面以获取更多有关此工作方式的详细信息。

0
ClojureScript

Google Closure(至少从命令行来看)现在包含了对源映射合并和内联源映射生成的全面支持。我们应该调查这个功能实际上有多可重用。

4 个答案

0

评论由:darwin قرار داده شده

调查了一点,只是分享我所了解到的

  1. 历史上有隐藏标志--source_map_input,可以用它来生成对源映射有意识的错误报告,而不仅是源映射组合,如名称所暗示的(链接:1)
  2. 2016年中期,一个补丁链接:2),增强了这完整地源映射组合
  3. 到2016年底,该特性似乎已公开,并且在命令行工具中默认启用(链接:3)(链接:5)
  4. 截至目前,官方的源映射wiki页面(链接:4)尚未更新以反映这一最新发展

(链接:1)https://github.com/google/closure-compiler/issues/1360#issuecomment-170716968
(链接:2)https://github.com/google/closure-compiler/pull/1971
(链接:3)https://github.com/google/closure-compiler/pull/2008
(链接:4)https://github.com/google/closure-compiler/wiki/Source-Maps
(链接:5)https://github.com/google/closure-compiler/pull/2129

0

评论由:darwin قرار داده شده

Closure编译器还新支持使用输入JavaScript文件中的数据URL进行内联源映射(链接:1)。

  1. 内联源映射的解析默认启用,除非传递\-\-parse_inline_source_maps=false,它与\-\-source_map_input标志无关
  2. 来自 \-\-source_map_input 和内联源图的文件信息将被合并,内联图覆盖 \-\-source_map_input,在多个 状态的情况下,最后内联图生效(链接:2)

(链接:1) https://github.com/google/closure-compiler/pull/1982
(链接:2) https://github.com/google/closure-compiler/pull/1982#issuecomment-243249065

0

评论者:thheller

无论如何,我在 shadow-build 中添加了这个功能的支持。它不需要内联源图来工作。

代码可以在以下位置找到:https://github.com/thheller/shadow-build/blob/master/src/main/shadow/cljs/closure.clj

相关的部分在 中的 <.addInputSourceMap> 和 中的 <.setApplyInputSourceMaps>。

如果一切配置正确,Closure 显示的警告将包含一个 “原始位置:” 标志,指向 CLJS 文件。

Closure 在为 <:advanced> 版本生成源图时也会使用输入源图,因此 CLJS 现在手动合并变得不再必要。源图似乎也更准确。在输入源图之前,我曾遇到一些源图偏差几行的问题,这可能归因于我在 shadow-build 中的错误处理。

0
参考:https://clojure.atlassian.net/browse/CLJS-1901(由 dnolen 提出)
...