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

Linux下Expo SDK46更新后执行npx expo start遇EISDIR错误求助

Expo SDK 46启动项目报错:EISDIR: illegal operation on a directory, read

问题详情

在Linux系统执行npx expo start启动项目时反复触发以下错误,更新至Expo SDK 46后问题出现,已严格遵循官方文档步骤新建项目,但错误依旧。

错误日志:

Error: EISDIR: illegal operation on a directory, read
Error: EISDIR: illegal operation on a directory, read
    at Object.readSync (node:fs:748:3)
    at tryReadSync (node:fs:448:20)
    at Object.readFileSync (node:fs:494:19)
    at readPackageJSON (/home/ronaldfleetss/expo2/my-app/node_modules/find-yarn-workspace-root/index.js:50:26)
    at findWorkspaceRoot (/home/ronaldfleetss/expo2/my-app/node_modules/find-yarn-workspace-root/index.js:23:22)
    at getWorkspaceRoot (/home/ronaldfleetss/expo2/my-app/node_modules/@expo/metro-config/build/getModulesPaths.js:34:49)
    at getWatchFolders (/home/ronaldfleetss/expo2/my-app/node_modules/@expo/metro-config/build/getWatchFolders.js:124:65)
    at getDefaultConfig (/home/ronaldfleetss/expo2/my-app/node_modules/@expo/metro-config/build/ExpoMetroConfig.js:253:63)
    at Object.loadAsync (/home/ronaldfleetss/expo2/my-app/node_modules/@expo/metro-config/build/ExpoMetroConfig.js:352:23)
    at Object.instantiateMetroAsync (/home/ronaldfleetss/expo2/my-app/node_modules/@expo/cli/build/src/start/server/metro/instantiateMetro.js:27:45)

已尝试操作:

  • 卸载全局Expo
  • 按照Expo文档修改package.json
  • 执行npm install更新依赖

解决方法

1. 删除误创建的package.json目录

错误核心是find-yarn-workspace-root模块把某个目录当作package.json文件读取,检查项目根目录及上级目录(如/home/ronaldfleetss/expo2/),如果存在名为package.json的目录,直接删除该目录。

2. 清理依赖并重新安装

  • 删除项目的依赖目录和锁文件:
    rm -rf node_modules
    rm package-lock.json
    
  • 重新安装依赖:
    npm install
    

3. 禁用Yarn工作区检测

若项目并非Yarn工作区,可通过以下方式关闭工作区检测:

  • 在项目根目录创建.yarnrc文件,添加内容:
    workspaces-experimental false
    
  • 或在package.json中明确禁用工作区:
    {
      "private": true,
      "workspaces": null
    }
    

4. 修复目录权限

确保项目目录权限正确,执行以下命令:

sudo chown -R $USER:$USER /home/ronaldfleetss/expo2/my-app
chmod -R 755 /home/ronaldfleetss/expo2/my-app

5. 调整Expo CLI或Node.js版本

  • 尝试使用稳定版Expo CLI启动项目:
    npx expo-cli@4.12.10 start
    
  • 检查Node.js版本是否与SDK 46兼容(推荐Node.js 16.x),若版本不匹配,切换至对应版本。

内容的提问来源于stack exchange,提问作者Ronald Damasio Bezerra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 05:40:22