我尝试为React.js应用编写测试。 一切都很顺利但是在用Git跟踪目录之后(用它做了一个Git回购)。 测试失败,错误如下
2017-01-15 05:05 node[1278] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
2017-01-15 05:05 node[1278] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
events.js:160
throw er; // Unhandled 'error' event
^
Error: Error watching file for changes: EMFILE
at exports._errnoException (util.js:1022:11)
at FSEvent.FSWatcher._handle.onchange (fs.js:1406:11)

我确信这是因为.git
目录,因为当我删除.git
目录时,它运行时没有错误。
似乎在观看文件时发生异常。
我的开发环境是MacOS 10.12.2和节点6.9.4。
我该如何解决这个问题?
答案 0 :(得分:14)
哦,经过几个小时的努力,我将回答我的问题
最佳解决方案是安装最新版本的Watchman
旧版本的Watchman导致fsevents
模块抛出异常。
安装watchman
后,您可以选择运行sudo chown -R $(whoami):staff ~/Library/LaunchAgents
来授予权限。
答案 1 :(得分:1)
我遇到了相同的问题,升级watchman
并不能解决我的问题。
阅读Jest的文档,您会发现有一个禁用使用watchman
的选项。因此,我猜想watchman
不是必需的。
此问题的解决方法是使用npm install --save-dev jest@latest
将Jest升级到最新版本。
答案 2 :(得分:0)
对我来说这是一个许可问题,当你用自制软件安装守望者时说你应该尝试使用brew postinstall守望者。
执行此操作时,您将注意到权限错误。
Error: Permission denied - /usr/local/var/run/watchman
sudo chown -R "$USER":admin /usr/local/var/run
将解决权限问题
brew postinstall watchman
将起作用
答案 3 :(得分:0)
Unable to Start Firefox Using the Legacy Driver on a 3.5.3 Grid
描述了解决这个棘手问题的可能方法。
我个人不得不重新安装守望者 - 测试再次顺利进行。
答案 4 :(得分:0)
您安装了值班员吗?我最近有一位同事在我的笔记本电脑中洒水,因此在将项目等迁移到新笔记本电脑后,我遇到了类似的问题。经过一番努力后,我意识到我只需要运行brew install watchman
,前提是您当然是自制的。
答案 5 :(得分:0)
我遇到了与上述类似的问题,并且在看到注释后,我尝试通过运行brew install watchman来安装watchman,但是它建议升级到最新版本,并且我执行了相同的操作。这解决了我的问题,现在我可以使用npm test开玩笑地运行我的测试。谢谢你们