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

React Native Expo项目启动报EMFILE: Too many open files错误求助

问题:EMFILE: too many open files (React Native + Expo 项目)

这并非常见的"EMFILE: too many open files"重复案例,尽管错误信息一致,但现有公开解决方案对我无效。我尝试过以下操作均无效果:

  • 安装brew并执行相关命令(中途因brew无限安装占用数GB磁盘空间被迫终止)
  • 将npm更新为项目其他成员使用的版本

环境说明

  • 系统:macOS
  • 编辑器:VSCode
  • 项目:React Native + Expo,通过git clone --recursive克隆
  • 已执行npm i完成依赖安装,package.json内容如下:
{  
  "version": "1.0.0",  
  "main": "expo-router/entry",  
  "scripts": {    
    "start": "expo start",    
    "format": "npx prettier --write .",    
    "check": "npx prettier --check .",    
    "eslint": "npx eslint . --ext js --ext jsx",    
    "lint:fix": "eslint --fix --ext .js,.jsx .",    
    "android": "expo start --android",    
    "ios": "expo start --ios",    
    "web": "expo start --web",    
    "prepare": "husky install"  
  },  
  "dependencies": {    
    "@expo/vector-icons": "^13.0.0",    
    "@react-navigation/native": "^6.1.9",    
    "@react-navigation/native-stack": "^6.9.17",    
    "eslint-config-prettier": "^9.1.0",    
    "expo": "~49.0.15",    
    "expo-app-loading": "^2.1.1",    
    "expo-constants": "~14.4.2",    
    "expo-font": "~11.4.0",    
    "expo-image": "~1.3.5",    
    "expo-linear-gradient": "~12.3.0",    
    "expo-linking": "~5.0.2",    
    "expo-router": "^2.0.0",    
    "expo-status-bar": "~1.6.0",    
    "react": "18.2.0",    
    "react-dom": "18.2.0",    
    "react-native": "0.72.10",    
    "react-native-email": "^2.1.0",    
    "react-native-gesture-handler": "~2.12.0",    
    "react-native-reanimated": "~3.3.0",    
    "react-native-responsive-fontsize": "^0.5.1",    
    "react-native-safe-area-context": "4.6.3",    
    "react-native-screens": "~3.22.0",    
    "react-native-web": "^0.19.10",    
    "validator": "^13.11.0"  
  },  
  "devDependencies": {    
    "@babel/core": "^7.20.0",    
    "eslint-config-google": "^0.14.0",    
    "eslint-plugin-react": "^7.33.2",    
    "husky": "^9.0.11",    
    "prettier": "^3.2.5",    
    "pretty-quick": "^4.0.0"  
  },  
  "private": true,  
  "resolutions": {    
    "metro": "0.76.0",    
    "metro-resolver": "0.76.0"  
  },  
  "lint-staged": {    
    "*.{js,jsx,ts,tsx,css,md}": [      
      "prettier --check",      
      "eslint --fix",      
      "git add"    
    ]  
  }
}

错误详情

执行npx expo start -c时触发错误(该命令在其他成员设备可正常运行),错误日志如下:

› Press s │ switch to development build

› Press a │ open Android
› Press i │ open iOS simulator
› Press w │ open web

› Press j │ open debugger
› Press r │ reload app
› Press m │ toggle menu
› Press o │ open project code in your editor

› Press ? │ show all commands

Logs for your project will appear below. Press Ctrl+C to exit.
node:events:496      throw er; // Unhandled 'error' event      ^

Error: EMFILE: too many open files, watch    at FSWatcher._handle.onchange (node:internal/fs/watchers:207:21)
Emitted 'error' event on NodeWatcher instance at:    at FSWatcher._checkedEmitError (/Users/shiqizhou/github projects/Front-End/node_modules/metro-file-map/src/watchers/NodeWatcher.js:134:12)    at FSWatcher.emit (node:events:518:28)    at FSWatcher._handle.onchange (node:internal/fs/watchers:213:12) {  errno: -24,  syscall: 'watch',  code: 'EMFILE',  filename: null}

Node.js v20.12.1

注:该问题常见于macOS+Xcode环境,但我是在VSCode中触发此错误,不确定该信息是否有用。

欢迎任何解答、评论或建议!


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 05:23:13