JSHintオプション一覧を纏めてみたお話。
JSHintオプション一覧
JSHint Options Reference を纏めてみた。(JSHint 2.5 現在)
ドキュメント化されてない隠しオプションも一部含みます。
制限系オプション
trueにするとチェックが厳しくなる
オプション名 | default | |
---|---|---|
bitwise | true | ビット演算子の禁止 |
camelcase | false | camelCase, UPPERASEの強制 |
curly | true | if, forのブロックスコープを必ず{}で括るよう強制 |
eqeqeq | true | 比較演算子は==, != ではなく===, !==を強制 |
forin | true | for...inループ内でhasOwnPropertyでのチェックを強制 |
immed | false | 括弧で括られていない無名関数の即時実行禁止 e.g. (function () { } ()); |
indent | 4 | インデント |
latedef | false | var前の変数使用禁止 "nofunc"で関数は除外 |
maxcomplexity | false | 循環的複雑度 - Wikipedia の制限 |
maxdepth | false | 最大ネスト数の制限 |
maxerr | 50 | 最大エラー数の制限 |
maxlen | false | 一行の長さ制限 |
maxparams | false | 関数の最大引数の制限 |
maxstatements | false | 関数ごとの最大行数の制限 |
newcap | false | コンストラクタ名は大文字に強制 e.g. new F() |
noarg | true | arguments.caller and arguments.callee の使用禁止 |
noempty | true | 空ブロックの禁止 |
nonbsp | true | の禁止 |
nonew | false | new の禁止 |
plusplus | false | ++ , -- の禁止 |
quotmark | false | クォートの規定 true: どちらかに規定, false: 規定しない, "single", "double" |
strict | true | use strict;の強制 |
trailing | true | 行末のホワイトスペース禁止 |
undef | true | 未定義変数の禁止 |
unused | true | 未使用変数を警告 |
許可系オプション
true にするとチェックが甘くなる
オプション名 | default | |
---|---|---|
asi | false | セミコロン抜けチェックの無効化 |
boss | false | == を書くべき所に = が書いてないかチェック無効化 |
debug | false | debugger の許可 |
eqnull | false | == null の許可 |
es5 | false | ECMAscript 5 メソッド許可 |
esnext | false | ECMAScript 6 メソッド許可 |
evil | false | eval と new Function() の許可 |
expr | false | ExpressionStatement (式文) の許可 |
funcscope | false | 関数スコープチェックの無効化 |
globalstrict | false | グローバルな"use strict"許可 |
iterator | false | iterator プロパティの許可 |
lastsemic | false | ワンライナーで書いた時の最後のセミコロン抜けチェックの無効化 |
laxbreak | false | 安全でない改行の許可 |
laxcomma | false | , を先に書くスタイルの許可 |
loopfunc | false | 関数の無限ループチェックの無効化 |
moz | false | FirefoxのJS1.7で追加されたメソッド許可 (有効時はesnextより優先される) |
multistr | false | 改行を\でエスケープしていない複数行テキストのチェック無効化 |
proto | false | proto の許可 |
scripturl | false | javascript:... はじまりのURLの許可 |
shadow | false | 定義済み変数の再定義を許可 |
smarttabs | false | タブとスペースの混在許可 |
sub | false | 連想配列の厳密な呼び出し方チェックの無効化 e.g. person['name']とperson.name |
supernew | false | new function () { ... }; と new Object; の許可 |
validthis | false | コンストラクタ関数以外の関数内でthis利用許可(strict modeの時のみ) |
ライブラリ/フレームワークオプション
使用するライブラリ類をtrueにすると、そのライブラリで使用しているグローバル変数警告が出なくなる
オプション名 | default | |
---|---|---|
browser | false | ブラウザ (window, document, etc) |
couch | false | CouchDB |
devel | false | 開発, デバッグ用変数 (alert, confirm, etc) |
dojo | false | Dojo Toolkit |
jquery | false | jQuery |
mootools | false | MooTools |
node | false | Node.js |
nonstandard | false | 非推奨のグローバル変数(escape, unescape, etc) |
phantom | false | PhantomJS |
prototypejs | false | Prototype.js |
rhino | false | Rhino |
worker | false | Web Workers |
wsh | false | Windows Scripting Host |
yui | false | Yahoo User Interface |
レガシー
将来的に削除予定のオプション
オプション名 | default | |
---|---|---|
nomen | false | 末尾が`の変数名を禁止 |
onevar | false | 変数宣言を関数の最初に書くことの強制 |
passfail | false | 警告があった時点でJSHintを止める |
white | false | Douglas Crockford氏のJavaScriptコーディングスタイルになってるかチェック |
グローバル変数の追加オプション
オプション名 | default | |
---|---|---|
globals | {} | {}内にグローバル変数を定義できる. e.g. "globals": {"AjaxZip3":false} |
設定例
.jshintrc として上記設定をjson形式で保存し、好きな所に配置する。 .jshintrc の利用される順序は、
- カレントディレクトリにある.jshintrc
- 親ディレクトリにある.jshintrc、なければ親の親ディレクトリにある.jshintrc、なければ親の親の親の(以下略)
- $HOME/.jshintrc
となっている。
{ "maxerr" : 50, // Enforcing "bitwise" : true, "camelcase" : false, "curly" : true, "eqeqeq" : true, // Custom Globals "globals" : {"CKEDITOR": false, "jQuery": false} }
公式のサンプルはこちらにあるよ jshint/.jshintrc at master · jshint/jshint · GitHub