1
Closure编译器可以配置为将选定类型的警告提升为错误。当开发团队想要将他们的JS保持在更严格的标准时,这很有用。但是,我遇到了一个我们依赖的一些库(如RequireJS)并不严格的问题。所以当我这样做时:避免externs中的编译器错误(闭包编译器)
java -jar compiler.jar --js input.js
--compilation_level ADVANCED_COMPILATION
--externs require.js
--jscomp_error=missingProperties
构建在RequireJS中失踪的属性错误失败。当然,没有错误升级,构建成功。
在Require的情况下,公共符号很少,因此创建一个虚假的externs文件而不是使用真实的文件是微不足道的。但这并没有扩展 - 我们使用无数其他库,这些库都需要维护单独的外部合同。
我看到两种可能的解决方案,但没有足够的信息来执行任何一种。 (1)使Closure返回到extern的正常警告配置;或者(2)使用能够可靠/一致地提取给定图书馆的外部合同的工具。或者我没有想到的任何其他解决方案。
这是我害怕的答案。大多数图书馆不保留extern文件,内部这样做并不现实。但感谢您验证此问题的“正确”立场。 –
是否有一个extern文件可用于库是决定使用哪个编译级别的主要因素。请参阅http://closuretools.blogspot.com/2012/09/which-compilation-level-is-right-for-me.html –