PostCSSプラグインは暗黙的にビルトイン関数の引数を書き換えるというコードを書く前提になっている。この仕組みとESLintのno-param-reassignルールの食い合わせが非常に悪い。なんとかなることもあるが、どうやればいいのか見当がつかないこともある。
明示的に値を返すと裏で書き換えてくれるラッパー関数を別ライブラリーに切り分けてみたりしたが、一部互換性が失われる挙動をおこしたりしたのであきらめた。結局はあまり考えずにビルトイン関数に渡される引数だけインライン・コメントで許可することにした。Array#reduce()
と同じと考えて目をつぶりたい。
そこそこESLintがのしている時代なので、ESLintが想定している設定にそぐわない使い方をするライブラリーが使いづらい。この本末転倒に近い現象はリンターという謎の仕組みが絶滅しない限り解消しないだろう。
テストがあるならフォーマッターを通せば良し、みたいなテキトウな時代が良い。あまりテスト書いていないが……書く気はある。
コードをまったく書かない日々が続く。エディターを開かないこともしばしばだ。古いコードを直そうかとESLintを通したら50とか出てきたためすぐに諦めた。動いているものを変える必要はないという金言を盾にしている。