我正在尝试使用以下命令在 mac osx 10.12.15 上安装并运行 Reaction
npm install -g 反应-cli 反应初始化 CD反应 反应
然后我得到了以下错误,我刚刚接触 Reactjs 开发人员,所以很紧张。它只是与软件包版本兼容,但我该如何解决这个问题
=> Started proxy.
=> Started MongoDB.
/Users/sopheak/.meteor/packages/templating-compiler/.1.3.2.1411czp++os+web.browser+web.cordova/plugin.compileTemplatesBatch.os/npm/node_modules/meteor/promise/node_modules/meteor-promise/promise_server.js:190
throw error;
^
Error: ENFILE: file table overflow, scandir '/Users/sopheak/Documents/cam/react/reaction/packages/gridfs'
at Error (native)
at Object.fs.readdirSync (fs.js:808:18)
at Object.wrapper (/tools/fs/files.js:1586:35)
at readDirectory (/Users/sopheak/.meteor/packages/meteor-tool/.1.5.0.15auley++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/tools/fs/watch.js:338:26)
at Watcher._fireIfDirectoryChanged (/Users/sopheak/.meteor/packages/meteor-tool/.1.5.0.15auley++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/tools/fs/watch.js:490:23)
at /Users/sopheak/.meteor/packages/meteor-tool/.1.5.0.15auley++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/tools/fs/watch.js:747:12
at Array.forEach (native)
at Function._.each._.forEach (/Users/sopheak/.meteor/packages/meteor-tool/.1.5.0.15auley++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/underscore/underscore.js:79:11)
at Watcher._checkDirectories (/Users/sopheak/.meteor/packages/meteor-tool/.1.5.0.15auley++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/tools/fs/watch.js:736:7)
at new Watcher (/Users/sopheak/.meteor/packages/meteor-tool/.1.5.0.15auley++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/tools/fs/watch.js:435:10)
at setupClientWatcher (/tools/runners/run-app.js:800:23)
at [object Object]._.extend._runOnce (/tools/runners/run-app.js:811:7)
at [object Object]._.extend._fiber (/tools/runners/run-app.js:890:28)
at /tools/runners/run-app.js:417:12
这可能是由于 Mac 上打开文件的限制造成的。默认情况下它设置为低。您将需要增加默认大小。
$ echo kern.maxfiles=65536 | sudo tee -a /etc/sysctl.conf
$ echo kern.maxfilesperproc=65536 | sudo tee -a /etc/sysctl.conf
$ sudo sysctl -w kern.maxfiles=65536
$ sudo sysctl -w kern.maxfilesperproc=65536
$ ulimit -n 65536
请参阅此链接了解更多详情。
sudo launchctl 限制最大文件数 16384 16384 && ulimit -n 16384
我也面临着类似的问题。 我尝试使用 maxfiles=65536 但遇到了同样的错误。
然后我按照评论中的建议尝试使用 524288,并且成功了。
命令:
echo kern.maxfiles=524288 | sudo tee -a /etc/sysctl.conf
echo kern.maxfilesperproc=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -w kern.maxfiles=524288
sudo sysctl -w kern.maxfilesperproc=524288
ulimit -n 524288
希望对其他人也有帮助