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 –