【问题标题】:Suppress "Unknown global symbol" warnings in qooxdoo with coffeescript使用咖啡脚本抑制 qooxdoo 中的“未知全局符号”警告
【发布时间】:2013-07-17 20:19:06
【问题描述】:

我将 qooxdoo 与谷歌地图 API 结合使用。我实际上将它与coffeescript结合使用,但在我转向coffeescript之前我遇到了同样的问题(尽管我怀疑coffeescript没有帮助)。

当我构建项目时,我得到很多这样的行:

  - Warning: myproj.App (22,50): Unknown global symbol used: 'google'
  - Warning: myproj.App (22,76): Unknown global symbol used: 'google.maps'
  - Warning: myproj.App (23,21): Unknown global symbol used: 'google'
  - Warning: myproj.App (23,47): Unknown global symbol used: 'google'
  - Warning: myproj.App (23,74): Unknown global symbol used: 'google.maps'
  - Warning: myproj.App (15,18): Unknown global symbol used: 'google.maps.LatLng'

我发现很多对 @ignoreUndefined@ignore 的引用来摆脱这个,所有这些都应该放在这样的 javadoc 注释中:

/**
 * @ignore(google.*)
 */

但是,我无法让它工作。我试过@ignoreUndefined 和@ignore,有和没有括号,有google,有google.,有google*,有google.*,有google.maps.LatLng 明确(和所有其他的)和其他一些变化。在咖啡脚本中,我尝试将其全部放在 ### 块中,以及文件顶部的块中,如下所示:

`/**
  * @ignoreUndefined google
  */`

`/** @ignore(google) */`

(反引号将其直接插入 javascript 源代码中)。

我真正想做的是在config.json 中添加一些内容,告诉它停止抱怨 google。*(这比每个文件更简单,因为它会在每个文件中),但我找不到一种方法来做到这一点。这开始成为一个问题,因为我在Unknown global symbol used: 'google 的页面中遗漏了真正的错误...

谁能告诉我我做错了什么?


编辑

感谢理查德,我现在可以正常工作了。如果它对其他人有用,我的 config.json 看起来像这样(删除了不相关的位):

{
    ...

    "config-warnings" :
    {
        "job-shadowing": ["common", "lint", "source-all", "build"]
    },

    "jobs" :
    {
        "build" :
        {
            "run" :
            [
                "coffee-compile",
                "build-resources",
                "build-script",
                "build-files"
            ]
        },
        "source-all" :
        {
            "run" :
            [
                "coffee-compile",
                "source-all-script"
            ]
        },
        "common":
        {
            "lint-check": {
                "allowed-globals": [
                    "google"
                ]
            }
        },
        "lint":
        {
            "lint-check": {
                "allowed-globals": [
                    "google"
                ]
            }
        },
        "coffee-compile" :
        {
            "extend": ["common"],
            "shell" :
            {
                "command": "coffee --bare --compile --output ./source/class/myapp/ ./coffee/myapp/*.coffee"
            }
        }
    }
}

【问题讨论】:

    标签: javascript coffeescript javadoc qooxdoo


    【解决方案1】:

    我假设您使用的是 qooxdoo 3.0(当前的 github 主分支 - 尚未发布但很快),它引入了 @ignore 语法(取代旧的 #ignore 语法)。我在我的config.json 中让它像这样工作:

    {
      "config-warnings" :
      {
        "job-shadowing" : ["source"],
      },
    
      ...
    
      "jobs" :
      {
        ...
    
        "source" :
        {   
          "lint-check" : { 
            "allowed-globals" : [ 
               "google"
            ]   
          }   
        }   
      }
    }
    

    像这样更改config.json 应该也可以在 qooxdoo 2.1.1 中使用。

    继续阅读:

    【讨论】:

    • 为了回答你的假设,我正在尝试 3.0 和 2.1.1 看看它是否有任何不同。我想我也试过#ignore,但没能成功。无论如何,只要稍加调整,我就可以完成这项工作。它工作正常,但是当你运行“build”时会出现错误,所以我将它添加到“common”和“lint”而不是“source”,它会清除所有错误。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2016-04-14
    • 2013-04-18
    • 2012-09-10
    • 2017-04-05
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    相关资源
    最近更新 更多