Repository: create-react-app
Issue: create-react-app installs react@19.0.0 causing peer dependency
Labels: needs triage,issue: bug report

Describe the Bug
When creating a new React app using npx create-react-app myprog, the installation fails due to dependency resolution issues. Specifically, create-react-app installs react@19.0.0 by default, which conflicts with dependencies like @testing-library/react@13.4.0 that require react@"^18.0.0". This problem persists even when using the --legacy-peer-deps flag or specifying react-scripts@5.0.1.

Did you try recovering your dependencies?
Yes, I followed the suggested recovery steps:

Deleted the node_modules, package-lock.json, and yarn.lock (if applicable).
Reinstalled dependencies with npm:
bash
複製程式碼
npm install -g npm@latest
npm install
Used a clean directory for npx create-react-app.
Despite these efforts, the issue persists.

Which terms did you search for in User Guide?
I searched the following terms in the [Create React App Documentation](https://facebook.github.io/create-react-app/):

"dependency conflict"
"peer dependency"
"react@19"
"legacy-peer-deps"
None of the solutions resolved the issue.

Environment
Here is the output of npx create-react-app --info:

yaml
複製程式碼
Environment Info:

  current version of create-react-app: 5.0.1
  running from /Users/jim/.npm/_npx/c67e74de0542c87c/node_modules/create-react-app

  System:
    OS: macOS 14.6.1
    CPU: (8) x64 Intel(R) Core(TM) i5-8259U CPU @ 2.30GHz
  Binaries:
    Node: 22.12.0 - /usr/local/bin/node
    Yarn: 1.22.22 - /usr/local/bin/yarn
    npm: 10.9.2 - ~/.npm-global/bin/npm
  Browsers:
    Chrome: 131.0.6778.71
    Edge: Not Found
    Safari: 17.6
  npmPackages:
    react: Not Found
    react-dom: Not Found
    react-scripts: Not Found
  npmGlobalPackages:
    create-react-app: Not Found
Steps to Reproduce
Install Node.js LTS version (22.12.0).
Run npx create-react-app myprog or npx create-react-app myprog --legacy-peer-deps.
Observe the dependency resolution error.
Expected Behavior
The project should initialize successfully with compatible versions of react, react-dom, and all other dependencies. Specifically, it should install react@18 instead of react@19, as the latter is not yet compatible with the current create-react-app dependency chain.

Actual Behavior
The project initialization fails with the following error:

vbnet
複製程式碼
npm error code ERESOLVE
npm error ERESOLVE unable to resolve dependency tree
npm error
npm error While resolving: myprog@0.1.0
npm error Found: react@19.0.0
npm error node_modules/react
npm error   react@"^19.0.0" from the root project
npm error
npm error Could not resolve dependency:
npm error peer react@"^18.0.0" from @testing-library/react@13.4.0
npm error node_modules/@testing-library/react
npm error   @testing-library/react@"^13.0.0" from the root project
Reproducible Demo
This issue occurs in a clean environment. Steps to reproduce:

Delete any existing node_modules or lock files:

bash
複製程式碼
rm -rf node_modules package-lock.json
Run:

bash
複製程式碼
npx create-react-app myprog
Alternatively, use:

bash
複製程式碼
npx create-react-app myprog --legacy-peer-deps
The issue persists in both cases.

Additional Notes
This issue appears to be caused by react@19.0.0 being marked as the latest release on npm. However, @testing-library/react and other dependencies still require react@18.
I attempted the following workarounds, but none resolved the issue:
Specifying react-scripts@5.0.1:
bash
複製程式碼
npx create-react-app myprog --scripts-version react-scripts@5.0.1
Using --legacy-peer-deps:
bash
複製程式碼
npx create-react-app myprog --legacy-peer-deps
Manually installing react@18 and react-dom@18 before running create-react-app.
This appears to be an ecosystem issue that requires either:

A change in create-react-app to explicitly lock React to version 18.
Updates to dependencies like @testing-library/react to support React 19.