ESLint はあまり深く考えず eslint-config-airbnb を導入していて、そんなに問題はないんだけども
たまにこちらが期待したルールが無効になってたり、逆にそんなに守らなくてもいいと思われるルールが有効になってたりして、ふと
「あれ、xxx っていうルールは今どういう設定になってるんだろう?」
と思うときがある。
で、eslint-config-airbnb の中身は実際どういうルールセットになっているのか確認してみた。
方法1:GitHub 上で直接確認する
の
- https://github.com/airbnb/javascript/tree/master/packages/eslint-config-airbnb
- https://github.com/airbnb/javascript/tree/master/packages/eslint-config-airbnb-base
この2つの rules
を確認すれば良いと思われる。
が、複数のファイルに分かれていて、目的のルールにたどりつくのがめんどくさい。
git clone してローカルで grep するとか。
方法2:ESLint の --print-config
オプションを使う
http://eslint.org/docs/user-guide/command-line-interface#print-config
によると ESLint には --print-config
というオプションがあるらしく、
$ eslint --print-config file.js
というように通常の lint 実行時と同じく、対象ファイルを指定して実行する。
これを実行すると、対象ファイルに対して実際に lint チェックを行うかわりに
このファイルに対してどういった設定で lint チェックを行うか、設定(ルールセット)の方が出力される。
$ eslint --print-config index.js { "globals": { "__dirname": false, "__filename": false, "arguments": false, "Buffer": false, "clearImmediate": false, ... "rules": { "accessor-pairs": 0, "array-callback-return": 2, ... }
これを使えばいまどんなルールセットになっているのか知ることができる。
私は ESLint をグローバルインストールしていないので
$ ./node_modules/eslint/bin/eslint.js --print-config index.js | vim -R -
パスが面倒だけど↑のような感じで結果を Vim を開き、目的のルールを検索して設定内容を確認している。
--print-config
は現在の設定内容を出力するので、当然のことながら .eslintrc
に記述した内容は結果に反映される。
そういう意味ではオリジナルの eslint-config-airbnb のルールを確認する方法とはいえない。