带有 $ 的 Grunt lint 错误

Posted

技术标签:

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

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

我怎样才能绕过这些?

【问题讨论】:

【参考方案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
        
    

【讨论】:

以上是关于带有 $ 的 Grunt lint 错误的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio Code 中的 TS Lint 突然指示错误的 lint 错误

猪拉丁语:错误 org.apache.pig.tools.grunt.Grunt - 错误 1045

@typescript-eslint 编译错误不同于 linting 错误

Grunt 错误:找不到模块“time-grunt”

Eslint“没有找到匹配模式“lint”的文件。请检查模式中的输入错误。”错误

与订阅返回相关的 lint 错误,其中包含多个操作