1

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) 让 Closure 回退到外部人员的正常警告配置;或 (2) 使用可以可靠/一致地为给定库提取外部合同的工具。或者我没有想到的任何其他解决方案。

4

1 回答 1

2

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

于 2012-10-30T15:11:00.717 回答