Skip to content

React v19での依存関係エラーの解決法

主な問題

npx create-react-app 実行時に以下のエラーが発生:

npm
npm error ERESOLVE unable to resolve dependency tree
npm error Found: react@19.0.0
npm error Could not resolve dependency:
npm error peer react@"^18.0.0" from @testing-library/react@13.4.0

原因はReact v19のリリースと、未対応のテストライブラリ間の依存関係競合です

問題の詳細解説

Reactがバージョン19にアップデートされたにも関わらず、@testing-library/react などの関連パッケージがまだv18を要求しているため発生する依存関係の競合です。

典型的な症状:

  • React v19とテストライブラリ(v13.4.0)の互換性エラー
  • peer react@"^18.0.0" エラーメッセージの表示
  • --force--legacy-peer-deps を使わないとインストールが失敗
  • MongoDBなどの他の依存パッケージに悪影響

効果的な解決策

⚡ 推奨ソリューション: Viteを使用した新規プロジェクト作成

bash
npm create vite@latest

プロジェクト作成時に以下の選択:

  1. プロジェクト名を入力
  2. フレームワークに React を選択
  3. バリアントに TypeScript または JavaScript を選択

create-react-appの非推奨化

公式ドキュメントでもViteへの移行が推奨されています。create-react-appは現在メンテナンスモードです

補足:テストライブラリのインストール

プロジェクト作成後、必要なテストライブラリを別途インストール:

bash
npm install -D @testing-library/react @testing-library/jest-dom @testing-library/user-event

⚠ 一時的な回避策(非推奨)

create-react-appを使用しなければならない場合:

bash
npx create-react-app appname --legacy-peer-deps

ただしこの方法には以下の制限があります:

  • 非互換な依存関係による将来のバグリスク
  • React最新機能の利用不可
  • ビルドサイズやパフォーマンスの劣化

解決策の技術背景

依存関係競合の仕組み

Vite採用のメリット

  1. 依存関係の最新化 - create-react-appより依存パッケージが少ない
  2. パフォーマンス向上 - 開発サーバーの起動が10倍以上速い
  3. 将来性 - React公式が推奨するビルドツール
  4. 柔軟な設定 - 必要に応じて拡張可能

予防対策

バージョン競合を防ぐ習慣:

  • npx npm-check-updates -u で依存パッケージの最新化
  • Reactプロジェクトのドキュメントでバージョン互換性を確認
  • メジャーバージョン更新時にリリースノートをチェック

新しいツールチェインに移行することで、最新のReact機能を問題なく利用でき、依存関係のトラブルから解放されます。Viteは2024年現在、React開発の標準ツールとなりつつあります。