Next.js 15 + React 19项目安装Sentry依赖冲突报错求助
解决Next.js 15 + React 19安装@Sentry/nextjs@^9时的依赖冲突问题
问题背景
使用Next.js 15和React 19开发Web应用,执行npm add @sentry/nextjs@^9时触发ERESOLVE依赖冲突,报错根源是sanity-plugin-markdown@5.0.0的peer依赖要求React ^18.3,但当前项目使用的是React 19。已确认Sentry官方兼容React 19,需解决该冲突。
可行解决方案
1. 临时绕过peer依赖校验(快速验证)
利用npm的参数忽略peer依赖冲突,适合快速完成安装并验证功能:
- 使用
--legacy-peer-deps(推荐,更温和的跳过方式):
npm add @sentry/nextjs@^9 --legacy-peer-deps
- 或使用
--force(激进模式,可能引入潜在兼容风险):
npm add @sentry/nextjs@^9 --force
说明:多数库的peer依赖声明仅为范围限制,实际可兼容更高版本,你已确认Sentry兼容React 19,该方法可快速推进开发。
2. 升级sanity-plugin-markdown到兼容版本
检查并升级sanity-plugin-markdown至支持React 19的最新版本:
npm update sanity-plugin-markdown
若升级后的版本peer依赖包含React 19(如>=18.3 || ^19.0.0),则可彻底解决冲突。
3. 强制统一React版本(彻底消除冲突)
在项目package.json中添加overrides字段,强制所有依赖使用当前项目的React 19版本:
{ "overrides": { "react": "$react", "react-dom": "$react-dom" } }
添加后重新执行Sentry安装命令:
npm add @sentry/nextjs@^9
说明:该方法会强制依赖树中所有模块使用根项目的React版本,彻底消除版本不一致问题,适合需要严格版本统一的场景。
注意事项
- 安装完成后,建议运行项目测试脚本,验证
sanity-plugin-markdown和Sentry的核心功能是否正常,确保无隐性兼容问题。 - 若后续
sanity-plugin-markdown发布正式支持React 19的版本,建议及时升级以移除临时解决方案。
内容的提问来源于stack exchange,提问作者boom pow
相关产品推荐
相关产品推荐

