JavaScriptに関するお知らせ

SINCE2019
>
【JS】ESLintやPrettierなどのignoreファイルを--ignore-pathを使ってgitignoreに統一

【JS】ESLintやPrettierなどのignoreファイルを--ignore-pathを使ってgitignoreに統一


こんにちは!なんとついに100記事目、Mizutani(@sirycity)です。2年ちょっとかかった。内容は薄い

今日はESLintとかPrettierとかstylelintにあるignoreファイルをgitignoreに統一する方法についてです。

ignoreファイルとは

ignore(無視する)の名前のとおり、ESLintとかの実行対象から無視するファイルを指定するファイルのことです。ESLintなら.eslintignoreって名前です。

エラーが出てるけど内容を修正できないみたいなファイルを無視したりします。無視したいファイルの名前がfoo.jsだとしたらそのまま.eslintignorefoo.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ファイルをいっぱい作ればそれで済む話なんだけど、そういうどうでもいい所を突き詰めるのもプログラミングの楽しさだよね。以上。いつも見てくれてありがとう。これからもよろしくね。



PREV
2021-05-21
GooglePlayとAppStoreのUI/UXを比較

NEXT
2021-05-26
100記事達成記念に人気記事TOP10を振り返る