如何消除JSC_INVALID_FORWARD_DECLARE编译Google关闭库文件的错误?

问题描述

几年后回到一个项目,我在为Google闭包编译的更改而苦苦挣扎。我正在从github和这些工具下载全新的闭包库:

java版本“ 1.8.0_152”

关闭编译器版本:v20200830

使用下面引用的脚本,我得到了17个这样的错误,所有错误都存在于关闭文件中(我现在唯一尝试的错误):

js / closure-library / closure / goog / net / browsertestchannel.js:20:0: 错误-[JSC_INVALID_FORWARD_DECLARE]格式错误的goog.forwardDeclare 20 | goog.forwardDeclare('goog.net.browserChannel');

脚本:

java -jar Closure-compiler-v20200830.jar
--language_in ECMASCRIPT_NEXT
--language_out ECMASCRIPT5
--js js / closure-library / closure / goog / debug / **。js
--js js / closure-library / closure / goog / log / **。js
--js js / closure-library / closure / goog / testing / **。js
--js js / closure-library / closure / goog / testing / events / **。js
--js js / closure-library / closure / goog / testing / ui / **。js
--js js / closure-library / closure / goog / testing / net / **。js
--js js / closure-library / closure / goog / testing / net / rpc / **。js
--js js / closure-library / closure / goog / array / **。js
--js js / closure-library / closure / goog / asserts / **。js
--js js / closure-library / closure / goog / string / **。js
--js js / closure-library / closure / goog / reflect / **。js
--js js / closure-library / closure / goog / userAgent / **。js
--js js / closure-library / closure / goog / dom / **。js
--js js / closure-library / closure / goog / dom / browserrange / **。js
--js js / closure-library / closure / goog / dom / animationframe / **。js
--js js / closure-library / closure / goog / html / **。js
--js js / closure-library / closure / goog / html / sanitizer / **。js
--js js / closure-library / closure / goog / structs / **。js
--js js / closure-library / closure / goog / style / **。js
--js js / closure-library / closure / goog / Promise / **。js
--js js / closure-library / closure / goog / events / **。js
--js js / closure-library / closure / goog / net / **。js
--js js / closure-library / closure / goog / net / rpc / **。js
--js js / closure-library / closure / goog / object / **。js
--js js / closure-library / closure / goog / uri / **。js
--js js / closure-library / closure / goog / functions / **。js
--js js / closure-library / closure / goog / async / **。js
--js js / closure-library / closure / goog / ui / **。js
--js js / closure-library / closure / goog / Timer / **。js
--js js / closure-library / closure / goog / json / **。js
--js js / closure-library / closure / goog / iter / **。js
--js js / closure-library / closure / goog / math / **。js
--js js / closure-library / closure / goog / disposable / **。js
--js js / closure-library / closure / goog / labs / **。js
--js js / closure-library / closure / goog / dispose / **。js
--js js / closure-library / closure / goog / window / **。js
--js js / closure-library / closure / goog / a11y / **。js
--js js / closure-library / closure / goog / positioning / **。js
--js js / closure-library / closure / goog / date / **。js
--js js / closure-library / closure / goog / spell / **。js
--js js / closure-library / closure / goog / graphics / **。js
--js js / closure-library / closure / goog / fx / **。js
--js js / closure-library / closure / goog / fx / anim / **。js
--js js / closure-library / closure / goog / color / **。js
--js js / closure-library / closure / goog / i18n / **。js
--js js / closure-library / closure / goog / i18n / uChar / **。js
--js js / closure-library / closure / goog / fx / css3 / **。js
--js js / closure-library / closure / goog / fs / **。js
--js js / closure-library / closure / goog / fs / url / **。js
--js js / closure-library / closure / goog / fs / blob / **。js
--js js / closure-library / closure / goog / memoize / **。js
--js js / closure-library / closure / goog / pubsub / **。js
--js js / closure-library / closure / goog / storage / **。js
--js js / closure-library / closure / goog / storage / mechanism / **。js
--js js / closure-library / closure / goog / testing / storage / **。js
--js js / closure-library / closure / goog / testing / fs / **。js
--js js / closure-library / closure / goog / crypt / **。js
--js js / closure-library / closure / goog / crypt / hash32 / **。js
--js js / closure-library / third_party / closure / goog / mochikit / async / deferred.js
--compilation_level SIMPLE
--warning_level安静
--formatting PRETTY_PRINT
--checks_only
--third_party
--js_output_file dist / quickgoog.js

我正在猜测,因为这些是Google闭包自身的文件,所以我必须向后选择一些选项,但是Google并未针对此特定错误提供任何服务。欢迎任何建议!

解决方法

我能够重现您的错误,由于某种原因,删除third_party标志可以使我成功地编译Closure Library。我认为这是不正确的,并且您应该在Closure Compiler Github上提交一个错误:https://github.com/google/closure-compiler/issues

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...