2

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

我怎样才能绕过那些?

4

2 回答 2

9

你需要告诉 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 */

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

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

有关您可用的所有选项,请参阅JSHint 文档

于 2013-01-11T07:41:08.507 回答
0

globals必须在里面options

someTask: {
    options: {
        devel: true,
        globals: {
            $: false
        }
    }
}
于 2016-05-18T17:48:13.150 回答