MeWrite Docs

npm ERR! ERESOLVE could not resolve peer dependency

npmでピア依存関係の競合が発生した場合のエラー

概要

ERESOLVE は、npm v7以降でパッケージのピア依存関係(peer dependencies)が競合している場合に発生するエラーです。

エラーメッセージ

npm ERR! ERESOLVE could not resolve
npm ERR!
npm ERR! While resolving: package-a@1.0.0
npm ERR! Found: react@18.2.0
npm ERR! peer react@"^17.0.0" from package-b@2.0.0

原因

1. 異なるバージョン要求

パッケージAがReact 18を要求し、パッケージBがReact 17を要求している場合。

2. npm v7以降の厳格なチェック

npm v6以前は警告のみでしたが、v7以降はエラーになります。

解決策

1. –legacy-peer-depsフラグ

1
2
# npm v6以前の挙動に戻す
npm install --legacy-peer-deps

2. –forceフラグ

1
2
# 強制的にインストール
npm install --force

3. .npmrcに設定

1
2
# プロジェクトルートに.npmrcを作成
echo "legacy-peer-deps=true" > .npmrc

4. パッケージバージョンを調整

1
2
3
4
5
# 競合を起こしているパッケージを確認
npm ls react

# 特定のバージョンをインストール
npm install react@17.0.2

5. overridesで強制指定(npm v8.3+)

1
2
3
4
5
6
// package.json
{
  "overrides": {
    "react": "^18.2.0"
  }
}

6. Yarnを使用

1
2
3
# Yarnはピア依存関係を柔軟に処理
npm install -g yarn
yarn install

7. resolutionsで指定(Yarn)

1
2
3
4
5
6
// package.json
{
  "resolutions": {
    "react": "18.2.0"
  }
}

依存関係の確認

1
2
3
4
5
6
7
8
# 依存関係ツリーを表示
npm ls --all

# 特定のパッケージを確認
npm ls react

# なぜインストールされているか確認
npm explain react

クリーンインストール

1
2
3
# node_modulesとlock fileを削除して再インストール
rm -rf node_modules package-lock.json
npm install

関連エラー

関連エラー

最終更新: 2025-12-17