2013-01-11 70 views
2

我正在嘗試將lint與Grunt一起使用。我可以從命令行運行Grunt,但它給了我很多錯誤。主要是「'$'未定義」。即使alert正在拋出一個錯誤,「'警報'沒有定義」。

我該如何解決這些問題?

回答

9

你需要告訴JSHint(這是Grunt默認使用的linter)關於被分割文件可用的全局變量。我假設你在頁面上包含jQuery,因此$標識符(當然也可以是其他各種庫)。

您可以在每個文件或Grunt腳本中指定全局變量。要在文件中指定它們,您可以使用global指令。將這個在文件的頂部,或者在您使用全局函數的頂部:

/*global $:false */ 

注意,false意味着如果重寫$你會得到錯誤。如果您需要這種能力,請將其更改爲true

如果您希望在Grunt腳本中指定全局變量,則可以將globals屬性添加到jshint部分中的任何任務。例如:

grunt.initConfig({ 
    jshint: { 
     someTask: { 
      globals: { 
       $: false 
      } 
     } 
    } 
}); 

至於你得到alert消息,你需要告訴你允許使用的開發功能,如alertconsole.log JSHint。要做到這一點,你可以在文件中使用一個jshint指令(就像global指令):

/*jshint devel:true */ 

或者你可以在咕嚕腳本的options屬性添加到任務:

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

請參閱JSHint docs瞭解適用於您的所有選項。

0

globals必須是內options

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