React native error:错误:观看EMFILE

时间:2015-10-05 16:53:29

标签: react-native

我刚刚开始我的第一个反应原生应用程序:

http://www.raywenderlich.com/99473/introducing-react-native-building-apps-javascript

然而,当我运行构建时,我得到以下内容:这很重要吗?

[5:24:30 PM] <START> Building Dependency Graph
[5:24:30 PM] <START> Crawling File System
 ERROR  watch EMFILE
{"code":"EMFILE","errno":"EMFILE","syscall":"watch"}
Error: watch EMFILE
    at exports._errnoException (util.js:746:11)
    at FSWatcher.start (fs.js:1172:11)
    at Object.fs.watch (fs.js:1198:11)
    at NodeWatcher.watchdir (/Users/me/PhpstormProjects/foo/node_modules/react-native/node_modules/sane/src/node_watcher.js:144:20)
    at Walker.<anonymous> 

4 个答案:

答案 0 :(得分:6)

我遇到了同样的问题,更新到macOS Sierra,但事实证明,守望者应该受到指责。透过日志,我偶然发现了许多奇怪的许可问题。

正如github/facebook/react-native#9943所述,重新安装守望者解决了这个问题。

Intent intent = new Intent(this, AnyActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(intent);

答案 1 :(得分:1)

EMFILE是单个进程打开的文件太多时发生的错误。本周我在同一个技术堆栈上遇到了同样的问题。您可以使用ulimit命令增加打开文件的限制来避免错误。

ulimit 4096 # for instance

你应该试着找出为什么这么多文件是开放的。也许您的监视任务是在node_modules文件夹等中查看文件。

希望有所帮助

答案 2 :(得分:1)

我在MAC OS(Sierra)上遇到了这个问题,解决问题的方法是在终端上执行以下步骤:

launchctl limit maxfiles

可能会显示256作为下限。以下命令将更改限制。

sudo launchctl limit maxfiles 2048 unlimited

接下来,您还要卸载react-native并重新安装它,以便获得一个与Sierra更好的版本。您还想更新Homebrew并安装当前版本的watchman。

npm uninstall -g react-native-cli npm install -g react-native-cli brew update brew install watchman

信用:https://github.com/facebook/react-native/issues/10088

答案 3 :(得分:-1)

运行rm -rf node_modules && npm install可能有帮助。