Gruntfile.coffee に以下のように書く。
grunt.loadNpmTasks 'grunt-contrib-jshint'
grunt.initConfig(
jshint:
main:
options:
jshintrc: true
src: [ 'app' + sitePath + 'js/script.js' ]
...
watch:
js:
options:
livereload: true
files: [ 'app' + sitePath + 'js/*' ]
tasks: [ 'jshint' ]
)
options.jshintrc = true
を設定するとそれ以外の options は無視され同階層に置かれた .jshintrc ファイルを参照するようになる。
.jshintrc はJSON形式で記述する。
結果的に以下のような設定に。
{
"node": true,
"esnext": true,
"bitwise": true,
"camelcase": true,
"curly": true,
...
"globals": {
"window": true,
"document": true,
"jQuery": true,
"$": true,
"_": true,
"Backbone": true
},
"-W116": true,
"-W041": true
}
globals
には「XXXグローバルオブジェクトがない」的な警告が出るときに、予め「このグローバルオブジェクトはあるから、警告出すな」とJSHint側に伝えておく設定。
-WXXX: true
は特定のエラーを無視したいときに追加する設定。このエラーコード(ドキュメントの原文では warning code)は grunt --verbose
(もしくは grunt -v
)として verbose モードで Grunt タスクを起動すると表示されるようになる。
表示例:
^ [W116] Expected '!==' and instead saw '!='.
ここでは W116
というのが warning code なのでそれを "-W116": true
のように options に追加すると、警告は出なくなる。