Expo 为我的 React Native 和 Firebase 应用程序提供错误“EMFILE:打开的文件太多...”

问题描述 投票:0回答:2

这是完整的错误“错误:EMFILE:打开的文件太多,请观看 在 FSEvent.FSWatcher._handle.onchange (node:internal/fs/watchers:207:21" 我从 React Native 安装了 api (AsyncStorage) 后开始出现问题。我卸载了它,卸载了所有节点模块,再次运行 npm,更新expo 版本,尝试了无限的东西,但没有任何效果。有人说“brew install watchman”,我尝试过,但它不起作用,因为我只在后端使用 Firebase。我使用的是 M1 mac Air 2020。

任何有关如何与世博会合作的帮助,我们将不胜感激。

node.js firebase react-native expo node-modules
2个回答
7
投票

我也遇到了同样的问题,我也在尝试使用守望者之类的东西。但最简单的方法已经奏效了。删除nodemodules文件夹并再次执行npm install。

Linux/macOS:

rm -rf node_modules
npm install

我希望这有帮助。


0
投票

似乎是 MacBook M1+ 芯片的一个已知问题。

答案似乎是通过

brew install watchman

安装watchman

然后按照 watchman 的文档进行操作:https://facebook.github.io/watchman/docs/install

这来自文档:

macOS 文件描述符限制 仅适用于 macOS 10.6 及更早版本(尽管它在 14.6.1 上为我修复了该问题)

macOS 上默认的每进程描述符限制非常低(256!)。

Watchman 在启动时会尝试提高其描述符限制以匹配 kern.maxfilesperproc,因此您不需要搞乱 ulimit;只需提高 sysctl 就可以解决问题。

以下将提高限制以允许总共 1000 万个文件,每个进程 100 万个文件,直到下次重新启动为止。

$ sudo sysctl -w kern.maxfiles=10485760
$ sudo sysctl -w kern.maxfilesperproc=1048576

将以下内容放入 macOS 上名为 /etc/sysctl.conf 的文件中将导致这些值在重新启动后仍然存在:

kern.maxfiles=10485760
kern.maxfilesperproc=1048576

Github 上也正在跟踪此问题:https://github.com/expo/expo/issues/29083

© www.soinside.com 2019 - 2024. All rights reserved.