Node.js 22.12.0下使用create-react-app创建React项目遇依赖冲突
解决React 19与@testing-library/react peer依赖冲突问题
问题核心
当前create-react-app默认安装react@19.0.0,但模板配套的@testing-library/react@13.4.0仅支持react@^18.0.0,npm依赖树解析时触发ERESOLVE错误。
可行解决方案
方案1:降级React到18.x版本
直接指定React 18版本创建项目,从根源避开版本不兼容:
# TypeScript项目 npx create-react-app react-project --template cra-template-typescript@5.0.0 --legacy-peer-deps # JavaScript项目 npx create-react-app react-project --template cra-template@1.2.0 --legacy-peer-deps
创建完成后,package.json中的react/react-dom会锁定在18.x版本,与@testing-library/react@13.4.0的peer依赖要求匹配。
方案2:升级测试库到兼容React 19的版本
项目创建失败后,手动初始化并安装兼容依赖:
- 创建并进入项目目录:
mkdir react-project && cd react-project
- 初始化package.json:
npm init -y
- 安装React 19及适配的测试库版本(
@testing-library/react@15+已支持React 19):
npm install react@19 react-dom@19 npm install --save-dev @testing-library/react@latest @testing-library/jest-dom@latest @testing-library/user-event@latest
- 手动复制create-react-app模板的基础文件(如public/index.html、src/App.js等)完成项目初始化。
方案3:强制跳过依赖检查(临时应急用)
如果仅需快速创建测试项目,可使用--force参数强制安装:
npx create-react-app react-project --force
⚠️ 注意:该方式可能引发运行时未知问题,仅适合临时场景,生产环境禁用。
内容的提问来源于stack exchange,提问作者JRock




