O hirunewani blog

Q. 社内用eslint-configを入れ、ESLintをv8に上げたら、特定のルールでhasSuggestionを設定していないと言われる

Created at

ESLintをv8に上げたら特定のルールでhasSuggestionを設定していないと言われると相談があったので、その対応についてまとめた。

Q. ESLintをv8に上げたら、特定のルールでhasSuggestionを設定していないと言われる

状況

まずESLintはv8からルールが変更を提案する際にhasSuggestionが必須になり、設定されていないとエラーが出るようになった。

https://eslint.org/docs/latest/use/migrate-to-8.0.0#-rules-require-metahassuggestions-to-provide-suggestions

しかし、今回はESlintの記述やパッケージの管理を省くために導入された社用eslint-configを利用しており、当然エラーが発生していたreact-hooks/exhaustive-depsのeslint-plugin-react-hooksもhasSuggestionが設定されているバージョンをインストールするようになっていた。

https://github.com/facebook/react/blob/6b3083266686f62b29462d32de75c6e71f7ba3e3/packages/eslint-plugin-react-hooks/src/ExhaustiveDeps.js#L22

原因

npm ls -aの実行をお願いしたところ、eslint-plugin-react-hooksの古いバージョンが明示的にインストールされていることが分かった。

社用eslint-configは移行の際に、既存のpluginやconfigの依存関係を削除するようにREADMEに記載があったが、移行の際に対応が漏れてしまい、この問題が発生してしまったようだ。