React Native项目react-native-gesture-handler缺失GestureDetector.tsx文件报错求助
针对你遇到的Error: ENOENT: no such file or directory, open '.../node_modules/react-native-gesture-handler/src/handlers/gestures/GestureDetector.tsx'问题,以下是额外的排查和解决思路:
核对包内实际文件路径
新版本的react-native-gesture-handler可能重构了目录结构,GestureDetector.tsx的位置可能发生变化。手动打开node_modules/react-native-gesture-handler,查看实际的文件分布,确认项目中(包括第三方依赖)是否写死了旧的文件路径,若有则修改为当前正确的引入路径。指定安装稳定版本
当前安装的版本可能存在文件缺失bug或RN版本适配问题,尝试切换到一个经过验证的稳定版本:# npm npm install react-native-gesture-handler@2.12.0 --save # yarn yarn add react-native-gesture-handler@2.12.0版本选择可参考官方文档中与你的React Native版本对应的兼容列表。
清理lock文件后重新安装
锁文件可能缓存了异常的包信息,导致安装不完整:# npm rm -rf node_modules package-lock.json npm install # yarn rm -rf node_modules yarn.lock yarn install排查全局包干扰
检查是否全局安装了react-native-gesture-handler,可能和本地包产生冲突:npm ls -g react-native-gesture-handler若存在全局包,执行卸载:
npm uninstall -g react-native-gesture-handler之后重新安装本地依赖。
切换官方npm源重试
若使用国内镜像源,可能存在包同步不完整的情况:npm config set registry https://registry.npmjs.org/ rm -rf node_modules package-lock.json npm install安装完成后可切换回原镜像源。
临时手动修复(不推荐长期使用)
如果在包的其他目录找到GestureDetector.tsx,可临时复制或创建软链接到报错的路径下,解决当前编译问题,但需尽快找到根本原因避免后续隐患。
内容的提问来源于stack exchange,提问作者M FAHIM CH

