我刚刚开始我的第一个反应原生应用程序:
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>
答案 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
答案 3 :(得分:-1)
运行rm -rf node_modules && npm install
可能有帮助。