Closed3
eslint-config-nextのdependencyがeslint-plugin-jestとコンフリクトする
npx create-next-app@latest --eslint
するとeslint-config-nextが入って自動的にNext.jsのlintingが効くようにセットアップしてくれる。
ありがたや…と思っていたら、他のeslint-pluginをインストールしようとしたときにエラーが発生。
どうやらESLintでTypeScriptをパースするための@typescript-eslint/parserの依存関係が解決できないらしい。
実際のメッセージは以下の通り。
npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR!
npm ERR! While resolving: src@0.1.0
npm ERR! Found: @typescript-eslint/parser@5.62.0
npm ERR! node_modules/@typescript-eslint/parser
npm ERR! @typescript-eslint/parser@"^5.42.0" from eslint-config-next@13.4.11
npm ERR! node_modules/eslint-config-next
npm ERR! eslint-config-next@"^13.4.11" from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! eslint-plugin-jest@"*" from the root project
npm ERR!
npm ERR! Conflicting peer dependency: @typescript-eslint/parser@6.1.0
npm ERR! node_modules/@typescript-eslint/parser
npm ERR! peer @typescript-eslint/parser@"^6.0.0 || ^6.0.0-alpha" from @typescript-eslint/eslint-plugin@6.1.0
npm ERR! node_modules/@typescript-eslint/eslint-plugin
npm ERR! peerOptional @typescript-eslint/eslint-plugin@"^5.0.0 || ^6.0.0" from eslint-plugin-jest@27.2.3
npm ERR! node_modules/eslint-plugin-jest
npm ERR! eslint-plugin-jest@"*" from the root project
問題なくインストールできた(3週間前)他プロジェクトのpackage.jsonを確認した。
eslint-plugin-jest@^27.2.3なら通る。
@typescript-eslint/eslint-pluginも同じようなエラーが出るが、
@typescript-eslint/eslint-plugin@^5.60.1と指定すれば通る。
3週間でこんなことが起こったりするので、dockerfileでも具体的にバージョンを指定するのは再現性のためにやっぱり大事なんだなと再認識。
typescript-eslint v6でbreaking changeがあったっぽい。
このスクラップは2023/07/22にクローズされました