npm ERR! code ERESOLVE unable to resolve dependency tree の対処

結論を先に。このエラーは、パッケージ同士の peerDependencies(要求するバージョン)が衝突していて、npmが依存関係を解決できない状態です。まず衝突の内容を読み、バージョンを合わせるのが本筋ですが、急ぐときは —legacy-peer-deps で回避できます。

npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree

原因

npm 7以降は peerDependencies を厳格にチェックします。あるパッケージが「Reactの17を要求」しているのに、別の場所で18を入れている、といった食い違いがあると、解決できずインストールが止まります。

対処

  1. まずエラーログの「Found: …」「Could not resolve …」を読み、どのパッケージがどのバージョンを求めて衝突しているかを把握します。

  2. 一時的に回避するなら、peer依存の厳格チェックを緩めます。

Terminal window
npm install --legacy-peer-deps
  1. 根本対処は、衝突しているパッケージのバージョンを合わせることです。要求に合うバージョンに上げ下げします。
Terminal window
npm install react@18 react-dom@18
  1. —force はツリーを強引に壊して入れるため、最終手段にとどめます。

まとめ

  • 原因は peerDependencies のバージョン衝突
  • まずログでどの依存が衝突しているか確認する
  • 急ぐなら —legacy-peer-deps で回避
  • 根本はバージョンを合わせる。—force は最終手段