Expo SDK 48项目执行npm install时遇依赖冲突错误求助
解决Expo SDK48迁移后的npm依赖冲突问题
问题分析
你的项目存在两个明确的peer依赖冲突:
- @koale/useworker@4.0.2:作为
expo-camera@13.2.1的子依赖,要求peer react@^16.8.0,但项目使用React 18.2.0 - react-test-renderer@17.0.2:开发依赖版本与项目React 18.2.0不匹配,要求peer react@17.0.2
解决方案
1. 修复react-test-renderer版本不匹配
直接将react-test-renderer升级到与项目React一致的版本,修改package.json的devDependencies部分:
"devDependencies": { // 保留其他依赖不变 "react-test-renderer": "18.2.0" }
2. 解决@koale/useworker的peer依赖冲突
该依赖是expo-camera的子依赖,通过resolutions强制指定兼容React18的版本(@koale/useworker v5+已支持React18),同时修正你现有resolutions中不完整的配置:
修改package.json的resolutions字段:
"resolutions": { "@expo/config-plugins": "^5.0.0", "@koale/useworker": "^5.0.0" }
3. 清理并重新安装依赖
执行以下命令确保依赖完全更新:
# 删除现有node_modules和锁文件 rm -rf node_modules package-lock.json # 重新安装依赖 npm install
备选临时方案
如果上述方法无效,可使用npm参数绕过peer依赖检查(仅适合紧急场景,不推荐长期使用):
npm install --legacy-peer-deps
验证
安装完成后,运行npm run test和expo start确认项目能正常启动和测试。
内容的提问来源于stack exchange,提问作者VAAA
相关产品推荐
相关产品推荐

