【JS】ESLintやPrettierなどのignoreファイルを--ignore-pathを使ってgitignoreに統一
こんにちは!なんとついに100記事目、Mizutani(@sirycity)です。2年ちょっとかかった。内容は薄い
今日はESLintとかPrettierとかstylelintにあるignoreファイルをgitignoreに統一する方法についてです。
ignoreファイルとは
ignore(無視する)の名前のとおり、ESLintとかの実行対象から無視するファイルを指定するファイルのことです。ESLintなら.eslintignore
って名前です。
エラーが出てるけど内容を修正できないみたいなファイルを無視したりします。無視したいファイルの名前がfoo.js
だとしたらそのまま.eslintignore
にfoo.js
って書きます。ignoreファイルの書き方はもっと色々あるけど割愛。
ignoreファイルの問題点
めっちゃ増える。使うツールの数だけignoreファイルが増えていきます。まあそれはしょうがないんだけど、どのツールでも無視したい対象はだいたい同じだったりするので内容がほぼ同じignoreファイルが大量発生します。DRYとかSSoTに反しますね(言葉使いたかっただけ)
他のignoreファイルを借りる
ESLintは何もしないと.eslintignore
をignoreファイルとして認識しますが、他のignoreファイルを間借りすることができるんです。
普通はこうだけど、
npx eslint '**/*.{js,jsx,ts,tsx}'
こんな感じで--ignore-path
を指定すると.gitignore
をあたかも.eslintignore
かのように使うことができます。
npx eslint '**/*.{js,jsx,ts,tsx}' --ignore-path .gitignore
もちろんstylelintやprettierなども同様ですし、eslintのignoreを.prettierignore
にしたりなんかもできます。…が、基本的には.gitignore
に統一するのがおすすめ。gitignoreは他のignoreを借りられないからです。
注意点
gitignoreと他のignoreの対象が変わるケースでは注意が必要です。顕著なのはmarkdownファイルで、git管理はしたいけどprettierで整形はしたくないみたいなケースは非常に多いです。そういうケースは設定がめんどいです。
あとは、実行環境によっては他のignoreファイルを間借りできないケースがあります。例えばVSCodeの拡張機能のprettierです(npmのライブラリのprettierではない)。このケースもちょっと設定がいります。
ちなみに
prettierの対象からmarkdownを外さなければいけないのは日本語のせいです。…なんかすごい変な話ですけどね。
日本語は単語間にスペースがないってのが原因なんですが、同じ仕様の韓国語はprettierが独自に対策をとっているので特にmarkdownを除外する必要はないです。羨ましい。
ちなみに2
--ignore-path
は別にignoreファイルじゃなくても良いです。普通にREADME.md
とかを指定しても動きます。
さいごに
冒頭にも書きましたがこれが100記事目です。これからもマイペースに適当な記事を更新していこうと思います。適当な記事をね。この記事だって別にignoreファイルをいっぱい作ればそれで済む話なんだけど、そういうどうでもいい所を突き詰めるのもプログラミングの楽しさだよね。以上。いつも見てくれてありがとう。これからもよろしくね。