避免externs中的编译器错误(闭包编译器)

时间:2012-10-29 21:53:54

标签: google-closure-compiler

Closure Compiler可以配置为向错误提示所选类型的警告。当开发团队希望将JS保持在更严格的标准时,这很有用。但是,我遇到了一个问题,我们依赖的库(例如RequireJS)并不那么严格。所以当我这样做时:

java -jar compiler.jar --js input.js
                       --compilation_level ADVANCED_COMPILATION 
                       --externs require.js
                       --jscomp_error=missingProperties

构建在RequireJS中缺少属性错误时失败。当然,没有错误升级,构建成功。

在Require的情况下,公共符号很少,创建一个虚假的externs文件而不是使用真实的东西是微不足道的。但这不会扩展 - 我们使用无数其他库来维护单独的外部合同。

我看到两种可能的解决方案,但没有足够的信息来执行任何一种解决方案。要么(1)让闭关回到外部的正常警告配置;或(2)使用能够可靠/一致地提取给定图书馆的外部合同的工具。或者我没有想过的任何其他解决方案。

1 个答案:

答案 0 :(得分:2)

您想要创建外部文件,而不是使用原始源。使用原始源仅适用于非常简单的库。我知道有一些工具可以提取外部,但它们不提供类型信息。通常,您想要向库维护人员询问某些内容,然后询问Closure Compiler邮件列表,然后自己构建(并共享它)。