React Native运行出现Metro ENOENT错误:找不到@react-navigation目录如何解决?
报错原因
从报错日志可直接定位核心问题:Metro解析依赖路径时出错,报错路径D:\major project\MajorProject\Frontend\majorProject\node_modules@react-navigation中,node_modules和@react-navigation之间缺少了路径分隔符,导致系统找不到对应的依赖目录,触发ENOENT错误。
常见触发场景如下:
- 依赖安装过程中断、npm/yarn缓存异常,导致
@react-navigation相关包没有正确写入node_modules的对应目录 - package.json中依赖声明拼写错误,导致下载的包路径异常
- Metro本地缓存损坏,留存了错误的依赖路径记录
排查解决步骤
- 检查依赖声明:打开package.json,确认dependencies字段中存在
@react-navigation/native、@react-navigation/native-stack两个依赖,若缺失执行对应安装命令:# npm npm install @react-navigation/native @react-navigation/native-stack # yarn yarn add @react-navigation/native @react-navigation/native-stack # Expo项目优先使用expo安装 npx expo install @react-navigation/native @react-navigation/native-stack - 清理缓存重装依赖:删除项目根目录下的node_modules文件夹、package-lock.json/yarn.lock文件,重新执行安装命令,之后启动项目时带上清理缓存参数:
# 普通RN项目 npx react-native start --reset-cache # Expo项目 npx expo start --clear - 路径兼容性测试:如果上述步骤无效,可尝试将项目移动到不含空格、中文的纯英文路径下(原路径中的
major project包含空格,Windows系统下偶发路径解析异常),重新运行项目测试。
内容的提问来源于stack exchange,提问作者Salil Rajkarnikar
相关产品推荐
相关产品推荐

