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

Expo新建项目启动Debugger-ui时出现EISDIR错误的解决求助

修复Expo Remote JS调试时的EISDIR错误

针对你遇到的这个EISDIR: illegal operation on a directory, read错误,我整理了几个经过验证的修复思路,你可以逐一尝试:

  • 排查目录命名冲突
    Metro在解析模块时,如果遇到和目标模块同名的目录,会尝试读取这个目录导致报错。比如你的项目里如果存在react、expo这类和依赖包同名的目录,或者某个目录名和你import的JS文件同名(比如有个utils目录,但你又import了./utils.js),就会触发这个问题。建议检查项目根目录和src目录下的所有文件夹名称,删除或重命名这类冲突的目录。

  • 清除Metro缓存
    Metro的缓存可能存储了错误的路径映射,执行以下命令重启项目并清除缓存:

    npx expo start --clear
    # 或者简写
    expo r -c
    

    重启后再尝试打开Remote JS调试。

  • 检查Metro配置文件
    如果你自定义了metro.config.js,请确认resolver配置中的extraNodeModules、watchFolders等选项是否指向了错误的目录。比如如果不小心把某个目录设置成了模块路径,Metro会尝试读取目录而非文件。如果没有修改过配置,可以暂时移除自定义的metro.config.js,用默认配置测试。

  • 切换Node.js版本
    部分Node.js版本和当前Expo/Metro版本存在兼容性问题,建议切换到LTS版本(比如v18.x或v20.x)。可以用nvm(Node Version Manager)来快速切换:

    # 安装nvm后,切换到LTS版本
    nvm install --lts
    nvm use --lts
    

    切换后删除node_modules和锁文件,重新安装依赖再启动项目。

  • 重新安装项目依赖
    依赖包损坏也可能导致文件读取异常,执行以下步骤:

    1. 删除node_modules目录
    2. 删除package-lock.json(npm)或yarn.lock(yarn)
    3. 重新安装依赖:npm install或yarn install
    4. 清除Metro缓存并启动项目
  • 重置调试器连接
    有时候debugger-ui的缓存会导致异常,你可以:

    • 打开浏览器无痕模式,重新加载debugger-ui页面
    • 断开Expo Go和Metro的连接,重新扫码或连接
    • 尝试用expo start --tunnel启动项目,通过隧道连接调试,避免网络问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 14:12:37