Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
github avatar

React18 Dep Compatibility

  • 761 installs
  • 37.1k repo stars
  • Updated July 28, 2026
  • github/awesome-copilot

react18-dep-compatibility is a version matrix and decision tree for React 18.3.1 and React 19 dependency compatibility.

About

React Dependency Compatibility Matrix lists minimum package versions required for React 18.3.1 and React 19 across core react/react-dom pins, Testing Library, Apollo Client, Emotion, React Router, Redux, and other common dependencies. It explains why RTL 14+ is required because RTL 13 uses ReactDOM.render internally and breaks on React 18, and why react-redux 8+ is needed for concurrent mode versus legacy root-only v7. React Router v5 to v6 is flagged as a separate migration sprint with dedicated reference material rather than a simple version bump. A conflict resolution decision tree walks from npm ls peer conflicts through upgrade, GitHub issue research, or documented legacy-peer-deps as last resort. Legacy peer deps rules require active maintenance, declaration-only mismatches, and documentation in package.json or MIGRATION.md.

  • Pins react and react-dom to 18.3.1 for the React 18 orchestra target.
  • Testing Library 14+ required; RTL 13 breaks because it uses ReactDOM.render.
  • Apollo 3.8+, Emotion 11.10+, react-redux 8+ for concurrent mode support.
  • React Router v5 to v6 flagged as separate breaking migration sprint.
  • Decision tree for peer conflicts ending in documented legacy-peer-deps only.

React18 Dep Compatibility by the numbers

  • 761 all-time installs (skills.sh)
  • +17 installs in the week ending Jul 20, 2026 (Skillselion tracking)
  • Ranked #33 of 257 Release Management skills by installs in the Skillselion catalog
  • Security screen: LOW risk (skills.sh audit)
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

react18-dep-compatibility capabilities & compatibility

Capabilities
core and testing library minimum version table · apollo, emotion, router, redux compatibility pin · peer conflict resolution decision tree · legacy peer deps usage rules with documentation · react router v5 to v6 migration scope warning
Use cases
testing · refactoring
From the docs

What react18-dep-compatibility says it does

RTL 13 uses ReactDOM.render internally - broken in R18
SKILL.md
react-router v5 → v6 is a SEPARATE migration sprint.
SKILL.md
npx skills add https://github.com/github/awesome-copilot --skill react18-dep-compatibility

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs761
repo stars37.1k
Security audit3 / 3 scanners passed
Last updatedJuly 28, 2026
Repositorygithub/awesome-copilot

Which minimum package versions support React 18.3.1 or React 19 and how should peer conflicts be resolved?

Resolve React 18.3.1 and React 19 peer dependency conflicts using minimum compatible versions for core, testing, Apollo, Emotion, Router, Redux, and common UI libraries.

Who is it for?

Frontend teams upgrading to React 18.3.1 or 19 and hitting npm peer dependency warnings.

Skip if: Skip for runtime batching bugs, lifecycle migrations, or non-React dependency upgrades.

When should I use this skill?

User checks dependency support, resolves npm peer conflicts, or plans react-router v5 to v6 migration scope.

What you get

Grounded version table plus conflict resolution flow with documented legacy-peer-deps rules.

  • version compatibility matrix
  • upgrade target semver

By the numbers

  • Apollo Client 3.8+ required for React 18 useSyncExternalStore compatibility
  • Apollo Client versions below 3.7 lack React 18 concurrent mode support

Files

SKILL.mdMarkdownGitHub ↗

React Dependency Compatibility Matrix

Minimum versions required for React 18.3.1 and React 19 compatibility.

Use this skill whenever checking whether a dependency supports a target React version, resolving peer dependency conflicts, deciding whether to upgrade or use legacy-peer-deps, or assessing the risk of a react-router v5 to v6 migration.

Review this matrix before running npm install during a React upgrade and before accepting an npm dependency conflict resolution, especially where concurrent mode compatibility may be affected.

Core Upgrade Targets

PackageReact 17 (current)React 18.3.1 (min)React 19 (min)Notes
react17.x18.3.119.0.0Pin exactly to 18.3.1 for the R18 orchestra
react-dom17.x18.3.119.0.0Must match react version exactly

Testing Libraries

PackageReact 18 MinReact 19 MinNotes
@testing-library/react14.0.016.0.0RTL 13 uses ReactDOM.render internally - broken in R18
@testing-library/jest-dom6.0.06.0.0v5 works but v6 has React 18 matcher updates
@testing-library/user-event14.0.014.0.0v13 is sync, v14 is async - API change required
jest27.x27.xjest 27+ with jsdom 16+ for React 18
jest-environment-jsdom27.x27.xMust match jest version

Apollo Client

PackageReact 18 MinReact 19 MinNotes
@apollo/client3.8.03.11.03.8 adds useSyncExternalStore for concurrent mode
graphql15.x16.xApollo 3.8+ peer requires graphql 15 or 16

Read `references/apollo-details.md` for concurrent mode issues and MockedProvider changes.

Emotion

PackageReact 18 MinReact 19 MinNotes
@emotion/react11.10.011.13.011.10 adds React 18 concurrent mode support
@emotion/styled11.10.011.13.0Must match @emotion/react version
@emotion/cache11.10.011.13.0If used directly

React Router

PackageReact 18 MinReact 19 MinNotes
react-router-domv6.0.0v6.8.0v5 → v6 is a breaking migration - see details below
react-router-dom v55.3.4 (workaround)❌ Not supportedSee legacy peer deps note

react-router v5 → v6 is a SEPARATE migration sprint. Read references/router-migration.md.

Redux

PackageReact 18 MinReact 19 MinNotes
react-redux8.0.09.0.0v7 works on R18 legacy root only - breaks on concurrent mode
redux4.x5.xRedux itself is framework-agnostic - react-redux version matters
@reduxjs/toolkit1.9.02.0.0RTK 1.9 tested against React 18

Other Common Packages

PackageReact 18 MinReact 19 MinNotes
react-query / @tanstack/react-query4.0.05.0.0v3 doesn't support concurrent mode
react-hook-form7.0.07.43.0v6 has concurrent mode issues
formik2.2.92.4.0v2.2.9 patched for React 18
react-select5.0.05.8.0v4 has peer dep conflicts with R18
react-datepicker4.8.06.0.0v4.8+ added React 18 support
react-dnd16.0.016.0.0v15 and below have R18 concurrent mode issues
prop-typesanyanyStandalone - unaffected by React version

---

Conflict Resolution Decision Tree

npm ls shows peer conflict for package X
         │
         ▼
Does package X have a version that supports React 18?
  YES → npm install X@[min-compatible-version]
  NO  ↓
         │
Is the package critical to the app?
  YES → check GitHub issues for React 18 branch/fork
      → check if maintainer has a PR open
      → last resort: --legacy-peer-deps (document why)
  NO  → consider removing the package

--legacy-peer-deps Rules

Only use --legacy-peer-deps when:

  • The package has no React 18 compatible release
  • The package is actively maintained (not abandoned)
  • The conflict is only a peer dep declaration mismatch (not actual API incompatibility)

Document every `--legacy-peer-deps` usage in a comment at the top of package.json or in a MIGRATION.md file explaining why it was necessary.

Related skills

How it compares

Pick react18-dep-compatibility when upgrading React with Apollo Client specifically; use general dependency audit tools for non-GraphQL stacks.

FAQ

Minimum @testing-library/react for React 18?

Version 14.0.0 minimum because RTL 13 uses ReactDOM.render internally and breaks in React 18.

Can I use react-router v5 on React 19?

No. v5 is not supported on React 19; v5 to v6 is a separate migration sprint.

When is legacy-peer-deps acceptable?

Only when no compatible release exists, the package is maintained, and the conflict is declaration-only; document why.

Is React18 Dep Compatibility safe to install?

skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

Release Managementfrontendtesting

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.