React Native: XCode: 构建失败,错误"EMFILE: too many open files, watch"



–MackBook Air M1–macOS 11.3–XCode 12.5–天然反应0.64.1–节点16.0.0–npm 7.15.1–值班员2021.05.31.00

当我试图归档一个项目或为设备构建一个项目时,Xcode会停止构建,并出现错误:

/Users/aptyp/Projects/Proffmylife/Client/node_modules/metro-hermes-compiler/src/emhermesc.js:81
throw ex;
^
Error: EMFILE: too many open files, watch
at FSEvent.FSWatcher._handle.onchange (node:internal/fs/watchers:204:21)
Emitted 'error' event on NodeWatcher instance at:
at NodeWatcher.checkedEmitError (/Users/aptyp/Projects/Proffmylife/Client/node_modules/sane/src/node_watcher.js:143:12)
at FSWatcher.emit (node:events:365:28)
at FSEvent.FSWatcher._handle.onchange (node:internal/fs/watchers:210:12) {
errno: -24,
syscall: 'watch',
code: 'EMFILE',
filename: null
}
Command PhaseScriptExecution failed with a nonzero exit code

但对于模拟器来说,构建效果很好。

我尝试用brew重新安装node_modulesPodswatchman。此外,我还将文件limit.maxfiles.plistlimit.maxproc.plist创建到目录/Library/LaunchDaemon/中,现在ulimit-a显示进程2000文件描述符524288。正在重新启动计算机并解锁钥匙扣。

在我的电脑上,我没有这个问题。

此错误是由于mac m1 silicon的模块fsevents中存在错误。请参阅线程:https://github.com/facebook/metro/issues/668

它被新版本的钟表匠修复了。通过brew升级您的手表。删除你的项目并从git下载,并在安装pod的同时重建所有内容,然后它应该不会有任何问题。

Facebook用户承认错误并修复

我创建了一个同名的新项目,安装了所有最新的软件包并复制了代码。只有在那之后,这个项目才获得成功。

最新更新