既存警告の多いプロジェクトで ESlint を使う場合のTipsを紹介します。
背景
JavaScriptの静的解析ツール ESlint には、警告を自動修正してくれる --fixオプション があります。次のように
$ eslint --fix src/js
とするだけで、スタイル違反などの警告を自動的に修正してくれる優れものです。修正対象となる警告は、検出だけする場合と同様に、 .eslintrc
で設定されたルールに従います(すべてのルールが自動修正に対応しているわけではありません)。
ここで、既存警告の少ない新規プロジェクトや、コードベースがクリーンなプロジェクトでは、一括ですべて修正してもしれていると思います。しかし、総警告数が数千・数万規模の既存プロジェクトになってくると、個別のルールごとに修正したいことがあります。
解決策
--no-eslintrcオプション と --ruleオプション を組み合わせることで、特定のルールの指摘だけを修正できます。例えば、 indent
ルールだけ修正したい場合は、次の通りです。
$ eslint --fix --no-eslintrc --rule 'indent: ["error", 2]' src/js
補足
前述の方法で --fix
オプションを外せば、特定のルールの警告だけを検出することができます。自動修正に対応していないルールなど、特定のルールにフォーカスして個別に修正したい場合に便利です。
$ eslint --no-eslintrc --rule 'indent: ["error", 2]' src/js
また、 eslint-nibble をインストールすると、ルールごとの警告数を一覧し、特定のルールにドリルダウンして確認することができます。
こちらも全体を俯瞰したり、個別のルールに着目したりする場合に便利です。
まとめ
eslint --fix
を特定のルールだけに絞って実行する方法として、 --no-eslintrc
オプションと --rule
オプションで実現する方法を紹介しました。これであなたも警告数が数千・数万の既存プロジェクトと闘えます。