警告白名单在Google闭包编译器中不起作用

时间:2013-11-15 17:54:43

标签: google-closure-compiler

手册说我可以使用:

 --warnings_whitelist_file VAL          : A file containing warnings to
                                          suppress. Each line should be of the
                                          form
                                          <file-name>:<line-number>?  <warning-d
                                          escription>

这就是我的白名单的样子:

ef-utils.js:1  Redeclared variable: ef
ef-utils.js:1  Variable ef first declared in externs-ko.js
ef-validation.js:1  Redeclared variable: ef
ef-validation.js:1  Variable ef first declared in externs-ko.js

编译时我仍然收到警告:

ef-utils.js:1: WARNING - Redeclared variable: ef
?var ef = (function (ns, ko) {
     ^

ef-utils.js:1: WARNING - Variable ef first declared in externs-ko.js
?var ef = (function (ns, ko) {
     ^

ef-validation.js:1: WARNING - Redeclared variable: ef
?var ef = (function (ns, ko) {
     ^

ef-validation.js:1: WARNING - Variable ef first declared in externs-ko.js
?var ef = (function (ns, ko) {
     ^

3 个答案:

答案 0 :(得分:3)

我只是玩弄了the current WhitelistWarningsGuard。我发现了

  • 完全忽略行号:从输入文件和遇到的警告中删除它们。
  • 文件名的格式与输出格式相同,即它们出现在命令行中。
  • 文件名后面有一个冒号,后跟 两个 空格,后面跟着没有严重程度指示的消息文本(WARNING,{{ 1}})。
  • 白名单的主要效果似乎是将错误转化为警告。因此,当应用于警告时,根本没有效果
  • Tibos提到的ERROR在代码中,但我看不到从命令行使用它。

实际上,对于我的用例来说,这个功能似乎毫无用处......

答案 1 :(得分:1)

您应该使用WhitelistBuilder来构建白名单文件。从它的外观来看,你需要文件的绝对路径,而不是相对的。

答案 2 :(得分:0)

正如MvG正确声明的那样,这个标志被实现了它没用。但是,通过对编译器代码进行相当轻微的更改,可以将其转换为我们对它的期望:抑制我们不希望看到的错误和警告。

请在此处查看详细信息:Suppressing or resolving compiler errors in goog.base