Grunt lint错误与$

tee*_*ink 2 javascript jslint gruntjs

我正在尝试使用lint和Grunt.我可以从命令行运行Grunt,但它给了我很多错误.大部分"' $'未定义".即使alert抛出错误,"'警报'也没有定义".

我怎么能绕过那些?

Jam*_*ice 9

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

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

/*global $:false */
Run Code Online (Sandbox Code Playgroud)

请注意,false如果您覆盖,则意味着您将收到错误$.如果您需要能够这样做,请将其更改为true.

如果您更喜欢在Grunt脚本中指定全局变量,则可以globals向该jshint部分中的任何任务添加属性.例如:

grunt.initConfig({
    jshint: {
        someTask: {
            globals: {
                $: false
            }
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

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

/*jshint devel:true */
Run Code Online (Sandbox Code Playgroud)

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

someTask: {
    globals: {
        $: false
    },
    options: {
        devel: true
    }
}
Run Code Online (Sandbox Code Playgroud)

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