出现以下错误,但不能 100% 确定原因。目前,当我在 ios 模拟器中运行我的应用程序时遇到此问题
我尝试过 npm install watchman,但我刚刚看到 npm 软件包的最新更新,它似乎已经被贬值了。
events.js:292
throw er; // Unhandled 'error' event
^
Error: EMFILE: too many open files, watch
at FSEvent.FSWatcher._handle.onchange (internal/fs/watchers.js:127:28)
Emitted 'error' event on NodeWatcher instance at:
at NodeWatcher.checkedEmitError
at FSWatcher.emit (events.js:315:20)
at FSEvent.FSWatcher._handle.onchange (internal/fs/watchers.js:133:12) {
errno: -24,
syscall: 'watch',
code: 'EMFILE',
filename: null
}
这个错误是由watchman造成的。
您应该在终端中运行
brew install watchman
。
如果watchman安装失败,您应该通过以下方式将这些目录的所有权更改给您的用户
sudo chown -R $(whoami) /usr/local/etc/bash_completion.d /usr/local/lib/pkgconfig /usr/local/var/log
请参阅终端中的提示。
终于你跑了
brew install watchman
。问题应该解决了。
对于遇到这个问题的Mac M1的人,我尝试了上面的brew安装和升级watchman,但他们没有工作。我的具体问题是,react-native 项目可以通过“npm run ios”在模拟器上正常构建,但是当通过 xcode 存档或构建时,我会收到此错误。几个小时后,这就是所做的:
希望这能节省其他人我花在调试和尝试解决这个问题上的 6 个小时。
编辑:这又坏了,所以必须按照下一步来修复它:
此错误是由于 mac m1 芯片的 fsevents 模块中的错误造成的。请参阅线程:https://github.com/facebook/metro/issues/668
新版本的守望者修复了这个问题。通过brew升级你的守望者。删除你的项目并从 git 下载并重建所有内容以及 pod install,然后它应该不会出现任何问题。
尝试了一切并意识到我的node_modules中没有fsevents(即使它是一个新正确创建的React Native项目),执行“npm install fsevents”,这解决了问题。
我的 MacBook Pro M3 中的问题已解决,解决方案如下。
在终端中运行以下命令:
rm -rf node_modules/
npm install
npm start or npm expo start