react-native项目react-native-reanimated与react-navigation/drawer依赖报错求助
依赖报错问题解决思路
本次报错本质是react-native-reanimated与@react-navigation/drawer的版本兼容性不匹配,@react-navigation/drawer依赖特定版本范围的react-native-reanimated,克隆项目的package.json中指定的两个包版本范围未对齐,导致peer依赖校验不通过。可行解决方案如下:
- 对齐两个包的兼容版本范围:先确认当前项目使用的
@react-navigation/drawer版本对应的reanimated依赖要求,drawer v6要求reanimated 2.x及以上版本,drawer v7要求reanimated 3.x及以上版本。在package.json中明确指定匹配的版本组合,示例配置:
配置完成后删除node_modules文件夹、package-lock.json/yarn.lock文件,再重新执行依赖安装命令。"@react-navigation/drawer": "^6.6.15", "react-native-reanimated": "^2.17.0" - 配置包管理器强制覆盖版本:如果仍出现peer依赖冲突,使用包管理器的版本强制配置字段对齐版本。使用npm的话在package.json中添加overrides配置:
使用yarn的话添加resolutions配置:{ "overrides": { "react-native-reanimated": "$react-native-reanimated" } }
配置完成后重新执行依赖安装即可。{ "resolutions": { "react-native-reanimated": "指定的兼容版本号" } } - 修复安装完成后功能异常问题:如果依赖安装无报错但运行时抽屉功能异常,大概率是babel配置缺失,在babel.config.js的plugins数组末尾添加
react-native-reanimated/plugin,配置完成后执行npx react-native start --reset-cache清理缓存重启metro服务即可。 - 解决flipper连接失败问题:先确认桌面端flipper版本与项目内集成的flipper版本完全一致,安卓端在android/gradle.properties中配置
FLIPPER_VERSION=对应版本号,iOS端在Podfile中指定对应flipper版本后重新执行pod install即可。
内容的提问来源于stack exchange,提问作者Emad Baqeri
相关产品推荐
相关产品推荐

