React Native项目启动遇EMFILE: too many open files, watch错误求解决
解决React Native中EMFILE: too many open files错误的方案
临时提升系统文件描述符限制
在终端执行以下命令,临时调高当前会话的文件描述符上限:
ulimit -n 4096
若要永久生效(针对macOS),可修改/etc/security/limits.conf(不存在则创建),添加以下内容后重启终端或系统:
* soft nofile 4096 * hard nofile 65536
配置watchman忽略冗余文件
在项目根目录创建或编辑.watchmanconfig文件,添加忽略规则以减少watchman监控的文件数量:
{ "ignore_dirs": ["node_modules", ".git", "ios/Pods", "android/build"] }
清理Metro缓存
执行命令清除Metro的缓存文件,避免缓存引发的文件监控异常:
npx react-native start --reset-cache
重启相关服务
- 关闭当前运行的React Native打包服务(
react-native start进程) - 关闭模拟器或真机调试进程
- 重新启动打包服务和调试会话
排查高资源占用进程
用以下命令查看系统中占用文件描述符较多的进程,确认是否有其他程序耗尽资源:
# 查看总文件描述符占用数 lsof | wc -l # 查看node相关进程的占用情况 lsof -n | grep -E "(COMMAND|node)" | head -20
内容的提问来源于stack exchange,提问作者Sahdev Domadiya
相关产品推荐
相关产品推荐

