Grunt lint错误与$

时间:2013-01-11 01:42:47

标签: javascript jslint gruntjs

我试图将lint与Grunt一起使用。我能够从命令行运行Grunt,但它给了我很多错误。主要是"' $'未定义"。即使alert发生错误,也会发出错误消息,警告'未定义"。

我怎样才能解决这些问题?

2 个答案:

答案 0 :(得分: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 */

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

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

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

答案 1 :(得分:0)

globals必须在options

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