React Native 项目 Error: EMFILE: too many open files, watch

硬件:MacBook Pro (Retina, 13-inch, Mid 2014)
OS版本:MacOS BigSur 11.7.10 (20G1427)
更新: 删除modules的方法会有反弹,最后还是手动安装了预编译版本的watchman。

React Native 项目运行npm run web,出现如下错误:

Your macOS system limit does not allow enough watchers for Metro, install Watchman instead. Learn more: https://facebook.github.io/watchman/docs/install
Error: EMFILE: too many open files, watch

尝试了如下方案:

  1. 尝试 npm install watchman
    提示npm warn deprecated watchman@1.0.0: Package no longer supported. Contact support@npmjs.com for more info.

  2. 尝试brew install watchman
    无法安装,提示我的系统版本太老
    在这里插入图片描述

  3. 尝试修改文件打开数量(需要进入恢复模式关闭SIP: csrutil disable ):
    sudo launchctl limit maxfiles 5000000 5000000
    通过launchctl limit maxfiles查看已经改好了,但是仍然提示同样错误。

  4. 删除模块:

rm -rf node_modules/
npm install

然后再次npm run web,终于可以了:
在这里插入图片描述
但是后面调试过程中安装了别的模块之后,这个问题又回来了。

  1. 手动安装watchman
    点击官方链接下载macOS的prebuild版本Release v2023.05.01.00 · facebook/watchman(后面已经没有新版本了)
    然后复制到/usr/local/Cellar/,
cd /usr/local/Cellar/
unzip watchman-v2023.05.01.00-macos.zip
mv watchman-v2023.05.01.00 watchman
cp /usr/local/Cellar/watchman/lib/*.*  /usr/local/lib
brew link watchman

此时如果运行watchman --version报错找不到,那就手动创建链接:

ln -s /usr/local/Cellar/watchman/*/bin/watchman /usr/local/bin/watchman

然后再次运行watchman --version检查。
然后watchman config(其实没有这个命令),会提示:

watchman config   
2025-01-05T11:12:13,985: [] while computing sockname: failed to create /usr/local/var/run/watchman/xxx-state: Permission denied

其中xxx是我的系统用户名。
所以需要这样:

sudo spctl --master-disable
sudo chown -R $(whoami) /usr/local/var/run/watchman

然后再次运行watchman config,会提示没这个命令

watchman config                                    
{
    "version": "20230430.125247.0",
    "error": "watchman::CommandValidationError: failed to validate command: unknown command config"
}

但是watchman可以正常工作了,npx expo start也没有文件打开太多的错误了。
可以使用watchman debug-status命令查看watchman状态:

watchman debug-status
ROOTS
-----
/Users/simonliu/Documents/AI/AICoding/cursor/projects/rn1
  - fstype: apfs
  - watcher: fsevents
  - uptime: 7709 s
  - crawl_status: crawl completed 7707330ms ago, and took 1864ms
  - done_initial: true

CLIENTS
-------
57960: 'watchman' 'debug-status'
  - since: 2025-01-05 13:24:42
  - state: dispatching command

54201: 'node' '/Users/simonliu/Documents/AI/AICoding/cursor/projects/rn1/node_modules/.bin/expo' 'start' '--reset-cache'
  - since: 2025-01-05 11:16:17
  - state: waiting for request

参考文献:

  1. ios - React Native Error: EMFILE: too many open files, watch - Stack Overflow
  2. MacOS binaries missing · Issue #1190 · facebook/watchman

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/950671.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

YOLO11改进算法 | 引入SimAM模块的YOLO11-pose关键点姿态估计

目录 网络结构 测试结果 算法改进 局部和全局特征的兼顾 提升模型精度 提高计算效率 增强模型鲁棒性 模型指标 数据集介绍 Coovally AI模型训练与应用平台 YOLO11是由Ultralytics团队于2024年9月30日发布的,它是YOLO(You Only Look Once&#…

运放输入偏置电流详解

1 输入阻抗与输入偏置电路关系 在选择运放和仪表运放时,经常听到这样的说法:“需要非常高的输入阻抗”,事实上真实如此吗? 输入阻抗(更确切的说是输入电阻)很少会成为一个重要的问题(输入电容也…

HTML基础入门——简单网页页面

目录 一,网上转账电子账单 ​编辑 1,所利用到的标签 2,代码编写 3,运行结果 二,李白诗词 1,所用到的标签 2,照片的编辑 3,代码编写 4,运行结果 一,网…

Kubernetes集群架构

Kubernetes集群架构 Kubernetes 集群架构控制平面组件kube-apiserveretcdkube-schedulerkube-controller-managercloud-controller-manager 节点组件kubeletkebe-proxy(可选)容器运行时 插件DNSWeb UI(Dashboard)容器资源监控集群…

腾讯云AI代码助手-每日清单助手

作品简介 每日清单助手是一款可以记录生活的小程序,在人们需要记录时使用,所以根据这个需求来创建的这款应用工具,使用的是腾讯云AI代码助手来生成的所有代码,使用方便,快捷,高效。 技术架构 python语言…

创建基本的 Electron 应用项目的详细步骤

创建一个基本的 Electron 应用项目的详细步骤。我们将从安装 Node.js 开始,然后创建项目文件夹并初始化 Electron 项目。 1. 安装 Node.js 首先,确保你已经安装了 Node.js 和 npm。你可以在终端中运行以下命令来检查是否已经安装: node -v…

「scipy、eeg」使用python scipy butter filtfilt 分解EEG数据为5个频带和滤波参数选择

使用scipy butter filtfilt 分解EEG数据和滤波参数选择 【目录】 EEG数据频带和滤波参数滤波类型及示例Pyhton 代码实现 一、EEG数据频带和滤波参数 二、滤波类型 低通滤波(lowpass)高通滤波(highpass)带通滤波(bandpass&…

网络传输层TCP协议

传输层TCP协议 1. TCP协议介绍 TCP(Transmission Control Protocol,传输控制协议)是一个要对数据的传输进行详细控制的传输层协议。 TCP 与 UDP 的不同,在于TCP是有连接、可靠、面向字节流的。具体来说,TCP设置了一大…

深度学习第三弹:python入门与线性表示代码

一、python入门 1.熟悉基础数据结构——整型数据,浮点型数据,列表,字典,字符串;了解列表及字典的切片,插入,删除操作。 list1 [1, 2, 3, 4, 5] for each in list1:print(each) print(list1[1…

【Linux】shell脚本编程

目录 概念: shell脚本的本质: shell脚本编程: shell变量: 变量的定义格式: 变量的分类 自定义变量: 环境变量: 命令变量与命令行参数: 预定义变量: shell中的…

Onedrive精神分裂怎么办(有变更却不同步)

Onedrive有时候会分裂,你在本地删除文件,并没有同步到云端,但是本地却显示同步成功。 比如删掉了一个目录,在本地看已经删掉,onedrive显示已同步,但是别的电脑并不会同步到这个删除操作,在网页版…

CSS——1.优缺点

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><link rel"stylesheet" type"text/css" href"1-02.css"/></head><body><!--css&#xff1a;层叠样式表…

软件23种设计模式完整版[附Java版示例代码]

一、什么是设计模式 设计模式是在软件设计中反复出现的问题的通用解决方案。它们是经过多次验证和应用的指导原则,旨在帮助软件开发人员解决特定类型的问题,提高代码的可维护性、可扩展性和重用性。 设计模式是一种抽象化的思维方式,可以帮助开发人员更好地组织和设计他们…

(2023|NIPS,LLaVA-Med,生物医学 VLM,GPT-4 生成自指导指令跟随数据集,数据对齐,指令调优)

LLaVA-Med: Training a Large Language-and-Vision Assistant for Biomedicine in One Day 目录 LLaVA-Med: Training a Large Language-and-Vision Assistant for Biomedicine in One Day 0. 摘要 1. 简介 2. 相关工作 3. 生物医学视觉指令数据 4. 将多模态对话模型适配…

深入理解Mybatis原理》MyBatis的sqlSessi

sqlSessionFactory 与 SqlSession 正如其名&#xff0c;Sqlsession对应着一次数据库会话。由于数据库会话不是永久的&#xff0c;因此Sqlsession的生命周期也不应该是永久的&#xff0c;相反&#xff0c;在你每次访问数据库时都需要创建它&#xff08;当然并不是说在Sqlsession…

Numpy数组的属性

NumPy中最重要的一个特点就是其n维数组对象&#xff0c;即ndarray(别名array)对象&#xff0c;该对象具有矢量算术能力和复杂的广播能力&#xff0c;可以执行一些科学计算。不同于Python内置的数组类型&#xff0c; array对象拥有对高维数组的处理能力&#xff0c;这也是数值计…

(十)提示词任务分解的策略探讨

&#x1f4e2;&#x1f4e2;&#x1f4e2; 大家好&#xff0c;我是云楼Yunlord&#xff0c;CSDN博客之星人工智能领域前三名&#xff0c;多年人工智能学习工作经验&#xff0c;一位兴趣稀奇古怪的【人工智能领域博主】&#xff01;&#xff01;&#xff01;&#x1f61c;&#…

01 数据分析介绍及工具准备

数据分析介绍及工具准备 一、工具准备二、下载和使用Anaconda三、jupyter notebook常用快捷键 一、工具准备 数据科学库 NumPy&#xff0c;SciPy&#xff0c;Pandas&#xff0c;Scikit-Learn 数据可视化库 Matplotlib&#xff0c;Seaborn 编译器 Jupyter Notebook 数据科…

excel表格二维X、Y坐标散点图

excel中存在两列或两行数据&#xff0c;分别表示x坐标和对应的y坐标&#xff0c;同时选中两列或两行数据&#xff1a; 依次选择菜单&#xff0c;插入&#xff0c;图标&#xff0c;XY散点图 可以看到在表格中生成了以第1列为X轴&#xff0c;第2列为Y轴的二维XY散点图&#xff…

Cursor无限续杯——解决Too many free trials.

前情提要 我们都知道Cursor对新用户是有14天且500条免费限制的。 一般情况下&#xff0c;当14天过期&#xff0c;是可以注销账户再重新注册&#xff0c;这样就可以继续拥有14天的体验时长。 但是&#xff01;&#xff01;如果使用超过500次&#xff0c;Cusor就会把你的电脑I…