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
相关产品推荐
相关产品推荐

