欢迎!请查看关于页面以了解更多有关此功能的信息。
Google Closure现在包含了源映射合并和内联源映射生成的全面支持(至少从命令行来看)。我们应该调查这一功能的可重用性。
评论由:darwin发表
稍作调查,分享一下我所学到的东西
--source_map_input
(链接: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
Closure 编译器现在也支持使用 data URLs 在输入 JavaScript 文件中使用内联源码映射(链接:1)。
\-\-parse_inline_source_maps=false
\-\-source_map_input
(链接:1) https://github.com/google/closure-compiler/pull/1982(链接:2) https://github.com/google/closure-compiler/pull/1982#issuecomment-243249065
评论者:thheller
顺便提一下,我之前在 shadow-build 中添加了对这项功能的支持。它不需要内联源码映射即可工作。
代码可以在这里找到: https://github.com/thheller/shadow-build/blob/master/src/main/shadow/cljs/closure.clj
相关部分是在 Compiler 的 {{.addInputSourceMap}} 和 CompilerOptions 的 {{.setApplyInputSourceMaps}} 上。
Compiler
{{.addInputSourceMap}}
CompilerOptions
{{.setApplyInputSourceMaps}}
如果一切配置正确,Closure 显示的警告将包含一个“原始位置:”指向 CLJS 文件的位置。
Closure 还会在为 {{:advanced}} 构建生成源码映射时使用输入源码映射,因此目前 CLJS 手动合并变得不再必要。源码映射似乎也更准确。在使用输入源码映射之前,我遇到了一些源码映射错误几行的问题,但这可能是因为我在 shadow-build 中的源码映射处理错误。