React-Native升级到0.71.3后无法解析react-native-gesture-handler模块求助
React Native 0.71.3升级后模块解析错误解决思路
刚完成RN从0.69.8到0.71.3的版本升级,遇到两个循环报错:
- 导入
react-native-gesture-handler时提示找不到模块,即便该包已存在于node_modules,且已执行重建、检查Pods等操作 - 注释掉上述导入后,又出现
./app.json无法解析的错误
针对react-native-gesture-handler找不到的问题
- 确认版本兼容性:RN 0.71.x需搭配
react-native-gesture-handler2.9.0及以上版本,执行以下命令检查并重装:npm list react-native-gesture-handler npm uninstall react-native-gesture-handler npm install react-native-gesture-handler@latest - 全量清除缓存:升级后缓存易引发解析异常,执行:
npm cache clean --force npx react-native start --reset-cache # iOS额外操作 cd ios && pod deintegrate && pod install && cd .. - 检查metro配置:确保
metro.config.js未屏蔽该包,使用默认配置即可:const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config'); module.exports = mergeConfig(getDefaultConfig(__dirname), {});
针对app.json无法解析的问题
- 核对文件路径:注意报错中出现了
/Users/ethan/LayrApp/和/Users/ethan/Downloads/LayrApp/两个不同路径,确认index.tsx所在目录下确实存在app.json,且文件名无拼写/大小写错误 - 确认metro支持json文件:在
metro.config.js中确保解析扩展名包含json:const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config'); const defaultConfig = getDefaultConfig(__dirname); defaultConfig.resolver.sourceExts.push('json'); module.exports = mergeConfig(defaultConfig, {}); - 检查app.json格式:确保文件无语法错误(如缺失逗号、引号不匹配),避免metro无法解析
通用排查步骤
- 验证Node版本:RN 0.71.x要求Node 16+,执行
node -v检查版本,不符合则切换到对应版本 - 重置依赖:彻底删除
node_modules、ios/Pods、ios/build、android/build文件夹,重新执行npm install和平台构建操作
内容的提问来源于stack exchange,提问作者Ethan Marcus
相关产品推荐
相关产品推荐

