You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

react-native执行npm start时出现EISDIR: illegal operation on a directory, read错误

报错原因

该EISDIR: illegal operation on a directory, read报错本质是React Native的metro打包器在模块解析阶段,尝试将一个目录当作普通文件读取,触发了操作系统层面的非法操作错误。从报错栈的ModuleResolution相关调用可以确认,错误出现在依赖路径解析环节,常见触发原因如下:

  • 导入语句路径书写错误,未补全文件名且对应路径是无合法入口文件的目录
  • 项目中存在同名的文件和目录,模块解析时优先命中了目录
  • metro缓存存在脏数据,缓存中记录的文件路径实际已被修改为目录
  • package.json的main字段指向了目录而非入口文件
  • 自定义的metro配置中解析规则错误,导致目录被误判为可读取的文件/资源
排查与解决方法

按照优先级从高到低执行以下操作即可:

  • 第一步优先清除metro缓存重试,执行命令:
    npx react-native start --reset-cache
    # 若使用Expo开发则执行:npx expo start --clear
    
  • 检查近期修改的导入语句,确认没有漏写文件名的情况:例如需要导入./components/Button/index.js时,如果只写了import Button from './components/Button',需要确认Button目录下存在符合扩展名规则的入口文件(index.js/index.ts/index.tsx等)
  • 排查项目中是否存在同名的文件和目录,例如同时存在utils.js文件和utils/目录,重命名其中一个即可解决冲突
  • 检查根目录package.json的main字段,确认指向的是合法的入口文件路径,而非目录
  • 若自定义过metro.config.js的resolver相关配置,可先暂时注释掉自定义配置后重启项目,验证是否是配置错误导致的解析异常
  • 以上操作都无效的话,重装依赖后重试:
    rm -rf node_modules package-lock.json yarn.lock
    npm install
    

内容的提问来源于stack exchange,提问作者souradeep majumdar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 18:15:04