【问题标题】:Grunt lint error with $带有 $ 的 Grunt lint 错误
【发布时间】:2012-12-25 13:46:12
【问题描述】:

我正在尝试将 lint 与 Grunt 一起使用。我可以从命令行运行 Grunt,但它给了我很多错误。大多数情况下“'$'未定义”。甚至alert 都在抛出错误,“'alert' is not defined”。

我怎样才能绕过这些?

【问题讨论】:

    标签: javascript jslint gruntjs


    【解决方案1】:

    你需要告诉 JSHint(这是 Grunt 默认使用的 linter)关于被 linted 文件可用的全局变量。我假设您在页面上包含 jQuery,因此 $ 标识符(当然可以是各种其他库)。

    您可以在每个文件中或在 Grunt 脚本中指定全局变量。要在文件中指定它们,您可以使用 global 指令。把它放在文件的顶部,或者在你使用全局的函数的顶部:

    /*global $:false */
    

    请注意,false 表示如果您覆盖 $,则会出现错误。如果您需要这样做的能力,请将其更改为 true

    如果您希望在 Grunt 脚本中指定全局变量,您可以将 globals 属性添加到 jshint 部分中的任何任务。例如:

    grunt.initConfig({
        jshint: {
            someTask: {
                globals: {
                    $: false
                }
            }
        }
    });
    

    至于您收到的alert 消息,您需要告诉JSHint 您允许使用开发功能,例如alertconsole.log。为此,您可以在文件中使用jshint 指令(就像global 指令一样):

    /*jshint devel:true */
    

    或者您可以在 Grunt 脚本中为任务添加 options 属性:

    someTask: {
        globals: {
            $: false
        },
        options: {
            devel: true
        }
    }
    

    请参阅JSHint docs,了解您可以使用的所有选项。

    【讨论】:

      【解决方案2】:

      globals 必须在 options

      someTask: {
          options: {
              devel: true,
              globals: {
                  $: false
              }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2014-04-03
        • 1970-01-01
        • 2015-08-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-01
        • 2016-01-23
        相关资源
        最近更新 更多