`npm start` 问题:尽管打开的文件限制 = 65536,但仍观察 EMFILE 时出错

Issue with `npm start`: ERROR watch EMFILE although open files limit = 65536

ulimit -a日志:

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
max locked memory       (kbytes, -l) unlimited
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65536
pipe size            (512 bytes, -p) 1
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 709
virtual memory          (kbytes, -v) unlimited

虽然我在 npm start.

时仍然收到 EMFILE 错误

react-native@0.3.11 start /node_modules/react-native ./packager/packager.sh

 ===============================================================
 |  Running packager on port 8081.       
 |  Keep this packager running while developing on any JS         
 |  projects. Feel free to close this tab and run your own      
 |  packager instance if you prefer.                              
 |                                                              
 |     https://github.com/facebook/react-native                 
 |                                                              
 ===============================================================

在 /

中寻找 JS 文件

React 打包器准备就绪。

 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 (/node_modules/sane/src/node_watcher.js:144:20)
    at Walker.<anonymous> (/node_modules/react-native/node_modules/sane/src/node_watcher.js:351:12)
    at Walker.emit (events.js:110:17)
    at /node_modules/react-native/node_modules/sane/node_modules/walker/lib/walker.js:69:16
    at FSReqWrap.oncomplete (fs.js:95:15)

您的节点服务器的根目录似乎使用了“/”,因此根目录下的文件过多导致错误。

您忘记安装 watchman,安装方法如下:

通过 Homebrew 在 OSX 上安装

brew update
brew install watchman

从源安装

git clone https://github.com/facebook/watchman.git
cd watchman
./autogen.sh
./configure
make
sudo make install