我正在嘗試將lint與Grunt一起使用。我可以從命令行運行Grunt,但它給了我很多錯誤。主要是「'$
'未定義」。即使alert
正在拋出一個錯誤,「'警報'沒有定義」。
我該如何解決這些問題?
我正在嘗試將lint與Grunt一起使用。我可以從命令行運行Grunt,但它給了我很多錯誤。主要是「'$
'未定義」。即使alert
正在拋出一個錯誤,「'警報'沒有定義」。
我該如何解決這些問題?
你需要告訴JSHint(這是Grunt默認使用的linter)關於被分割文件可用的全局變量。我假設你在頁面上包含jQuery,因此$
標識符(當然也可以是其他各種庫)。
您可以在每個文件或Grunt腳本中指定全局變量。要在文件中指定它們,您可以使用global
指令。將這個在文件的頂部,或者在您使用全局函數的頂部:
/*global $:false */
注意,false
意味着如果重寫$
你會得到錯誤。如果您需要這種能力,請將其更改爲true
。
如果您希望在Grunt腳本中指定全局變量,則可以將globals
屬性添加到jshint
部分中的任何任務。例如:
grunt.initConfig({
jshint: {
someTask: {
globals: {
$: false
}
}
}
});
至於你得到alert
消息,你需要告訴你允許使用的開發功能,如alert
和console.log
JSHint。要做到這一點,你可以在文件中使用一個jshint
指令(就像global
指令):
/*jshint devel:true */
或者你可以在咕嚕腳本的options
屬性添加到任務:
someTask: {
globals: {
$: false
},
options: {
devel: true
}
}
請參閱JSHint docs瞭解適用於您的所有選項。
globals
必須是內options
someTask: {
options: {
devel: true,
globals: {
$: false
}
}
}