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) 使用可以可靠/一致地为给定库提取外部合同的工具。或者我没有想到的任何其他解决方案。