react18-dep-compatibility
React 18.3.1 および React 19 の依存関係互換性マトリックスを参照し、パッケージ間のバージョン互換性を確認するスキルです。
description の原文を見る
React 18.3.1 and React 19 dependency compatibility matrix.
SKILL.md 本文
React 依存関係互換性マトリックス
React 18.3.1 と React 19 の互換性に必要な最小バージョン。
依存関係がターゲット React バージョンをサポートしているか確認する場合、ピア依存関係のコンフリクトを解決する場合、アップグレードするか legacy-peer-deps を使用するかを判断する場合、または react-router v5 から v6 への移行リスクを評価する場合に、このスキルを使用してください。
React アップグレード中に npm install を実行する前、および npm 依存関係のコンフリクト解決を受け入れる前に、特に並行モード互換性が影響を受ける可能性がある場合に、このマトリックスを確認してください。
コアアップグレードターゲット
| Package | React 17 (current) | React 18.3.1 (min) | React 19 (min) | 備考 |
|---|---|---|---|---|
react | 17.x | 18.3.1 | 19.0.0 | R18 オーケストラの場合、正確に 18.3.1 にピンする |
react-dom | 17.x | 18.3.1 | 19.0.0 | react バージョンと完全に一致する必要があります |
テスティングライブラリ
| Package | React 18 最小 | React 19 最小 | 備考 |
|---|---|---|---|
@testing-library/react | 14.0.0 | 16.0.0 | RTL 13 は内部で ReactDOM.render を使用 - R18 では動作しません |
@testing-library/jest-dom | 6.0.0 | 6.0.0 | v5 は動作しますが v6 は React 18 マッチャーの更新があります |
@testing-library/user-event | 14.0.0 | 14.0.0 | v13 は同期、v14 は非同期 - API 変更が必要です |
jest | 27.x | 27.x | jest 27+ と jsdom 16+ を React 18 で使用 |
jest-environment-jsdom | 27.x | 27.x | jest バージョンと一致する必要があります |
Apollo Client
| Package | React 18 最小 | React 19 最小 | 備考 |
|---|---|---|---|
@apollo/client | 3.8.0 | 3.11.0 | 3.8 では並行モード用の useSyncExternalStore を追加 |
graphql | 15.x | 16.x | Apollo 3.8+ のピア要件は graphql 15 または 16 |
並行モードの問題と MockedProvider の変更については references/apollo-details.md を参照してください。
Emotion
| Package | React 18 最小 | React 19 最小 | 備考 |
|---|---|---|---|
@emotion/react | 11.10.0 | 11.13.0 | 11.10 では React 18 並行モードサポートを追加 |
@emotion/styled | 11.10.0 | 11.13.0 | @emotion/react バージョンと一致する必要があります |
@emotion/cache | 11.10.0 | 11.13.0 | 直接使用する場合 |
React Router
| Package | React 18 最小 | React 19 最小 | 備考 |
|---|---|---|---|
react-router-dom | v6.0.0 | v6.8.0 | v5 → v6 は大きな変更の移行 - 以下の詳細を参照 |
react-router-dom v5 | 5.3.4 (回避策) | ❌ サポートされていません | レガシーピア依存関係の注を参照 |
react-router v5 → v6 は個別の移行スプリントです。 references/router-migration.md を読んでください。
Redux
| Package | React 18 最小 | React 19 最小 | 備考 |
|---|---|---|---|
react-redux | 8.0.0 | 9.0.0 | v7 は R18 レガシールートでのみ動作 - 並行モードで破損 |
redux | 4.x | 5.x | Redux 自体はフレームワーク非依存 - react-redux バージョンが重要 |
@reduxjs/toolkit | 1.9.0 | 2.0.0 | RTK 1.9 は React 18 に対してテスト済み |
その他の一般的なパッケージ
| Package | React 18 最小 | React 19 最小 | 備考 |
|---|---|---|---|
react-query / @tanstack/react-query | 4.0.0 | 5.0.0 | v3 は並行モードをサポートしていません |
react-hook-form | 7.0.0 | 7.43.0 | v6 は並行モード問題があります |
formik | 2.2.9 | 2.4.0 | v2.2.9 は React 18 用にパッチされています |
react-select | 5.0.0 | 5.8.0 | v4 は R18 でピア依存関係コンフリクトがあります |
react-datepicker | 4.8.0 | 6.0.0 | v4.8+ は React 18 サポートを追加 |
react-dnd | 16.0.0 | 16.0.0 | v15 以下は R18 並行モード問題があります |
prop-types | any | any | スタンドアロン - React バージョンの影響を受けません |
コンフリクト解決デシジョンツリー
npm ls でパッケージ X のピアコンフリクトを表示
│
▼
パッケージ X に React 18 をサポートするバージョンはあるか?
はい → npm install X@[min-compatible-version]
いいえ ↓
│
そのパッケージはアプリにとって重要か?
はい → GitHub Issues で React 18 ブランチ/フォークを確認
→ メンテナーが PR を開いているか確認
→ 最後の手段: --legacy-peer-deps (理由を文書化)
いいえ → パッケージの削除を検討
--legacy-peer-deps ルール
以下の場合のみ --legacy-peer-deps を使用してください:
- パッケージに React 18 互換リリースがない
- パッケージは積極的にメンテナンスされている (放棄されていない)
- コンフリクトはピア依存関係宣言の不一致のみ (実際の API 非互換性ではない)
すべての --legacy-peer-deps の使用を文書化してください - package.json の上部のコメントまたは MIGRATION.md ファイルで必要な理由を説明します。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- github
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/github/awesome-copilot / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。