错误:MacOSX上的Meteor应用程序未知



当我运行位于/path/to/app中的流星应用程序时,它会正确构建和启动,但大约45秒到1分钟后,它总是会崩溃,并出现类似的错误

=> Started proxy.
=> Started MongoDB.
=> Started your app.
=> App running at: http://localhost:3000/
/Users/alex/.meteor/packages/meteor-tool/.1.1.10.1j76dru++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/fibers/future.js:278
                        throw(ex);
                              ^
Error: UNKNOWN, readdir '/path/to/node_modules/sjcl/jsdoc_toolkit-2.3.3-beta/app/test'
    at Object.Future.wait (/Users/alex/.meteor/packages/meteor-tool/.1.1.10.1j76dru++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/fibers/future.js:398:15)
    at /tools/fs/files.js:1331:28
    at Object.wrapper (/tools/fs/files.js:1334:20)
    at readDirectory (/tools/fs/watch.js:265:26)
    at Watcher._fireIfDirectoryChanged (/tools/fs/watch.js:409:23)
    at /tools/fs/watch.js:670:12
    at Array.forEach (native)
    at Function._.each._.forEach (/Users/alex/.meteor/packages/meteor-tool/.1.1.10.1j76dru++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 (/tools/fs/watch.js:659:7)
    at new Watcher (/tools/fs/watch.js:356:10)
    at [object Object]._.extend._runOnce (/tools/runners/run-app.js:746:23)
    at [object Object]._.extend._fiber (/tools/runners/run-app.js:858:28)
    at /tools/runners/run-app.js:396:12
    - - - - -

假设我尝试多次重现这个错误,我将在future.js:278和Object.future.wait的398:15中始终看到相同的错误,但试图由readdir读取的目录将是一些不同的node_modules包。我拥有该项目的所有正确权限。

知道在这个问题之前,我遇到了一个打开太多文件的问题(EMFILE错误),这可能会很有用,我在我的bashrc文件中添加了这一行,以增加进程可能打开的文件数量

sudo launchctl limit maxfiles 16384 16384 && ulimit -n 16384

它消除了EMFILE错误,但现在我陷入了这个未知错误。

此外,我已经尝试在这里解决

https://github.com/meteor/meteor/issues/4660

使用"sudo清除",但没有起作用。这个问题的任何解决方案。

找到并杀死Meteor的任何其他运行实例似乎为我解决了这个问题:

ps -x | grep meteor
# find [pid] of meteor instance
kill [pid]

运行sudo purge。如果不起作用,请重新启动mac,然后再次运行流星。它对我有效。

我发现将maxfiles限制提高得更高可以解决问题。

例如:

sudo launchctl limit maxfiles 100000 100000

最新更新