Error: EMFILE: too many open files - React Native CLI
Error: EMFILE: too many open files - React Native CLI
我尝试 运行 使用 react-native start 的 react-native-cli 项目,但 metro bundler 失败,提示如下:
events.js 187
throw er; //Unhandled 'error' event
Error: EMFILE: too many open files, watch
Emitted 'error' event on NodeWatcher isntance at:
at NodeWatcher: checkedEmitError (.../react-native-project/node_modules/sane/src/node_watcher.js:143:12)
at FSWatcher.emit (events.js:210:5)
at FSEvent.FSWatcher:_handle onchange (internal/fs/watchers.js:129:12) {
errno: -24,
syscall: 'watch',
code : 'EMFILE',
filename: null
)
Process terminated. Press <enter> to close the window
只需关闭所有其他文件,然后重试。如果您 运行 正在 android 上,请确保 运行 cd android
和 ./gradlew clean
在 react-native run-android
之前。
如果这不能解决问题,则您的文件监视服务可能有问题。试试这个
$ brew update
$ brew install watchman
就我而言,升级 watchman 没有帮助。
更新 Node.js 后开始出现此问题。
感谢 nvm
,我回到了节点 v8.11.3(我更新到 v12.0.4),这个问题消失了。
这可能会对遇到同样问题的一些人有所帮助...
我正在使用 Mac 并遇到 EMFile 错误。当我安装文件观察器时解决了
brew install watchman
我正在使用 MAC 和 Node v12.13.1。我升级了守望者,问题得到解决。
watchman 4.9.0_2 -> 4.9.0_4
在安装 PHP Storm 后,我遇到了很多这样的错误以及其他错误,例如找不到“Podfile.lock”等。
我根据 Whosebug 搜索的组合执行了以下操作来更正错误:
- 下载、安装并同意 XCode 许可
- 通过终端 window 在 brew.sh
安装 brew
- 安装节点
- 按照 iOS 终端 window 在 PHPStorm
中的说明进行操作
正在工作!
以下步骤对我在 MacOS 上有效:
- Updateing/Installing 来自官方网站的自制软件 https://brew.sh/
- 正在安装守望者:b重新安装守望者
升级我的节点版本后我遇到了这个问题。就我而言,降级不是一个选项。
brew install watchman
没有解决问题,因为我的机器上已经安装了 watchman。 brew upgrade watchman
对我有用。
在我的例子中,我在将开发机器从 Linux 切换到 OS X 后遇到了这个错误。上面的 None 对我有用,直到我 运行 brew upgrade watchman
.
TLTR:brew install watchman
在 Mac 一本书上解决了它。
我刚拿到一本新的 Mac 书,并且在 React Native 项目中遇到了同样的问题。在 Windows 上,该项目运行良好,但在 Mac 上,在使用 npm start 运行 几秒钟后,项目崩溃并出现此错误:
Error: EMFILE: too many open files, watch
at FSEvent.FSWatcher._handle.onchange (internal/fs/watchers.js:178:28)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ start: `expo start`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @ start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
PS:npm install
无效。它必须与 brew install
.
对我来说,简单的 upgrade watchman
没有帮助,更改我的 Node 版本也没有帮助。
我在 M1 Mac 上使用 XCode 12.5 构建并且必须:
- 使用 x86_64 自制程序实例安装 watchman
- 运行 Rosetta 终端中的 metro 服务器
- 运行 XCode 没有 Rosetta
如果这是您第一次使用 x86_64 自制程序实例安装包,请记住将其添加到您的路径中。
对于我的情况,我认为这个错误是由于节点升级造成的。
删除 node_modules
文件夹,运行 npm install
解决了问题。
我需要安装 watchman
和 brew
就像其他人在这里所做的那样,但是我还需要用这一行更新 React Native Xcode build script
:export PATH=/opt/homebrew/bin:$PATH
所以 xCode 可以在我的 M1 MacBook Pro 中找到 watchman
。
React Native Xcode 构建脚本位置:./node_modules/react-native/scripts/react-native-xcode.sh
我通过 macports
安装了 watchman。然而,对于“捆绑 React Native 代码和图像”构建阶段,watchman 的路径是未知的。
添加
export PATH=/opt/local/bin:$PATH
脚本开头为我解决了这个问题
尝试“brew install watchman”命令,
如果“brew”未安装,请按照以下步骤操作
关注this steps,这对我有用。
无论我做什么,我都无法让它工作。
最终对我有用的是使用以下命令
$ sudo sysctl -w kern.maxfiles=10485760
$ sudo sysctl -w kern.maxfilesperproc=1048576
发现于:https://facebook.github.io/watchman/docs/install.html#mac-os-file-descriptor-limits
我有一个 M1 Pro。
希望这对某人有帮助。
尝试了几个节点版本,但给出了同样的错误。
brew update watchman
帮助消除了这个错误。
在我的例子中,icu4c 版本是错误的。我重新安装 icu4c
然后就可以了。这是我使用的命令:
brew reinstall icu4c
在 docker 内部工作:ulimit -n 2048
我尝试 运行 使用 react-native start 的 react-native-cli 项目,但 metro bundler 失败,提示如下:
events.js 187
throw er; //Unhandled 'error' event
Error: EMFILE: too many open files, watch
Emitted 'error' event on NodeWatcher isntance at:
at NodeWatcher: checkedEmitError (.../react-native-project/node_modules/sane/src/node_watcher.js:143:12)
at FSWatcher.emit (events.js:210:5)
at FSEvent.FSWatcher:_handle onchange (internal/fs/watchers.js:129:12) {
errno: -24,
syscall: 'watch',
code : 'EMFILE',
filename: null
)
Process terminated. Press <enter> to close the window
只需关闭所有其他文件,然后重试。如果您 运行 正在 android 上,请确保 运行 cd android
和 ./gradlew clean
在 react-native run-android
之前。
如果这不能解决问题,则您的文件监视服务可能有问题。试试这个
$ brew update
$ brew install watchman
就我而言,升级 watchman 没有帮助。
更新 Node.js 后开始出现此问题。
感谢 nvm
,我回到了节点 v8.11.3(我更新到 v12.0.4),这个问题消失了。
这可能会对遇到同样问题的一些人有所帮助...
我正在使用 Mac 并遇到 EMFile 错误。当我安装文件观察器时解决了
brew install watchman
我正在使用 MAC 和 Node v12.13.1。我升级了守望者,问题得到解决。
watchman 4.9.0_2 -> 4.9.0_4
在安装 PHP Storm 后,我遇到了很多这样的错误以及其他错误,例如找不到“Podfile.lock”等。
我根据 Whosebug 搜索的组合执行了以下操作来更正错误:
- 下载、安装并同意 XCode 许可
- 通过终端 window 在 brew.sh 安装 brew
- 安装节点
- 按照 iOS 终端 window 在 PHPStorm 中的说明进行操作
正在工作!
以下步骤对我在 MacOS 上有效:
- Updateing/Installing 来自官方网站的自制软件 https://brew.sh/
- 正在安装守望者:b重新安装守望者
升级我的节点版本后我遇到了这个问题。就我而言,降级不是一个选项。
brew install watchman
没有解决问题,因为我的机器上已经安装了 watchman。 brew upgrade watchman
对我有用。
在我的例子中,我在将开发机器从 Linux 切换到 OS X 后遇到了这个错误。上面的 None 对我有用,直到我 运行 brew upgrade watchman
.
TLTR:brew install watchman
在 Mac 一本书上解决了它。
我刚拿到一本新的 Mac 书,并且在 React Native 项目中遇到了同样的问题。在 Windows 上,该项目运行良好,但在 Mac 上,在使用 npm start 运行 几秒钟后,项目崩溃并出现此错误:
Error: EMFILE: too many open files, watch
at FSEvent.FSWatcher._handle.onchange (internal/fs/watchers.js:178:28)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ start: `expo start`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @ start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
PS:npm install
无效。它必须与 brew install
.
对我来说,简单的 upgrade watchman
没有帮助,更改我的 Node 版本也没有帮助。
我在 M1 Mac 上使用 XCode 12.5 构建并且必须:
- 使用 x86_64 自制程序实例安装 watchman
- 运行 Rosetta 终端中的 metro 服务器
- 运行 XCode 没有 Rosetta
如果这是您第一次使用 x86_64 自制程序实例安装包,请记住将其添加到您的路径中。
对于我的情况,我认为这个错误是由于节点升级造成的。
删除 node_modules
文件夹,运行 npm install
解决了问题。
我需要安装 watchman
和 brew
就像其他人在这里所做的那样,但是我还需要用这一行更新 React Native Xcode build script
:export PATH=/opt/homebrew/bin:$PATH
所以 xCode 可以在我的 M1 MacBook Pro 中找到 watchman
。
React Native Xcode 构建脚本位置:./node_modules/react-native/scripts/react-native-xcode.sh
我通过 macports
安装了 watchman。然而,对于“捆绑 React Native 代码和图像”构建阶段,watchman 的路径是未知的。
添加
export PATH=/opt/local/bin:$PATH
脚本开头为我解决了这个问题
尝试“brew install watchman”命令,
如果“brew”未安装,请按照以下步骤操作
关注this steps,这对我有用。
无论我做什么,我都无法让它工作。 最终对我有用的是使用以下命令
$ sudo sysctl -w kern.maxfiles=10485760
$ sudo sysctl -w kern.maxfilesperproc=1048576
发现于:https://facebook.github.io/watchman/docs/install.html#mac-os-file-descriptor-limits
我有一个 M1 Pro。 希望这对某人有帮助。
尝试了几个节点版本,但给出了同样的错误。
brew update watchman
帮助消除了这个错误。
在我的例子中,icu4c 版本是错误的。我重新安装 icu4c
然后就可以了。这是我使用的命令:
brew reinstall icu4c
在 docker 内部工作:ulimit -n 2048