我试图将lint与Grunt一起使用。我能够从命令行运行Grunt,但它给了我很多错误。主要是"' $
'未定义"。即使alert
发生错误,也会发出错误消息,警告'未定义"。
我怎样才能解决这些问题?
答案 0 :(得分:9)
您需要告诉JSHint(默认情况下Grunt使用的linter)关于可用于linted的文件的全局变量。我假设您在页面上包含jQuery,因此$
标识符(当然可以是其他各种库)。
您可以在每个文件或Grunt脚本中指定全局变量。要在文件中指定它们,可以使用global
指令。将它放在文件的顶部,或放在使用全局函数的顶部:
/*global $:false */
请注意false
表示如果覆盖$
,您将收到错误消息。如果您需要这样做,请将其更改为true
。
如果您希望在Grunt脚本中指定全局变量,则可以向globals
部分中的任何任务添加jshint
属性。例如:
grunt.initConfig({
jshint: {
someTask: {
globals: {
$: false
}
}
}
});
至于你得到的alert
消息,你需要告诉JSHint你允许使用开发函数,例如alert
和console.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
}
}
}