Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Grunt watch错误-等待…致命错误:watch PC_Node.js_Gruntjs - Fatal编程技术网

Node.js Grunt watch错误-等待…致命错误:watch PC

Node.js Grunt watch错误-等待…致命错误:watch PC,node.js,gruntjs,Node.js,Gruntjs,为什么在运行watch任务时会出现等待的…致命错误:watch ENOSPC? 如何解决这个问题?在做了一些研究后找到了解决方案。运行下面的命令 echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p 对于Arch Linux,将此行添加到/etc/sysctl.d/99-sysctl.conf: fs.inotify.max_user_watches=52

为什么在运行watch任务时会出现等待的
…致命错误:watch ENOSPC

如何解决这个问题?

在做了一些研究后找到了解决方案。运行下面的命令

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
对于Arch Linux,将此行添加到/etc/sysctl.d/99-sysctl.conf:

fs.inotify.max_user_watches=524288

每当您需要运行
sudo something…
来修复某个问题时,您都应该停下来思考发生了什么。虽然这里公认的答案是完全正确的,但它是在治疗症状而不是问题。这相当于购买更大的马鞍袋来解决以下问题:错误,无法将更多垃圾装载到小马身上。小马已经装了这么多垃圾,小马累得晕倒了

另一种选择(可能与从小马身上取下多余的垃圾并放入垃圾堆相当)是:

npm dedupe
然后去祝贺自己让小马开心。

尝试后,您可以使用临时修复:

sudo bash -c 'echo 524288 > /proc/sys/fs/inotify/max_user_watches'

这与执行相同的操作,但不保留更改。如果在系统正常运行一段时间后才发生错误,这将非常有用。

我在客户端PC崩溃后遇到此错误,我在服务器上运行的
jest--watch
命令持续存在,我试图再次运行
jest--watch


上述答案中描述的对
/etc/sysctl.conf
的添加解决了这个问题,但是通过
ps aux|grep node
kill
找到我的旧流程也很重要。

要找出谁在创建inotify实例,请尝试以下命令():

我的是这样的:

 25 /proc/2857/fd/anon_inode:inotify
  9 /proc/2880/fd/anon_inode:inotify
  4 /proc/1375/fd/anon_inode:inotify
  3 /proc/1851/fd/anon_inode:inotify
  2 /proc/2611/fd/anon_inode:inotify
  2 /proc/2414/fd/anon_inode:inotify
  1 /proc/2992/fd/anon_inode:inotify

使用
ps-p2857
,我能够将流程2857识别为
sublime_text
。只有在关闭所有sublime窗口之后,我才能运行我的节点脚本。

在我的例子中,它与Linux机器上运行的vs代码有关。我忽略了一个关于文件监视程序的警告。解决方案位于linux的vs代码文档页面上


解决方案与公认的答案几乎相同(如果不相同的话),只是对那些在遇到vs代码问题后来到这里的人有更多的解释。

在我的例子中,我发现我有一个针对Vim的攻击性插件,只是重新启动了它。

好吧,它似乎解决了我的问题。。。但是怎么做呢?为什么?你是否有任何资料可以解释正在发生(或正在发生)的事情。或者你可以自己做吗?无论如何,谢谢…系统对用户可以查看的文件数量有限制。如果使用Dropbox等其他程序运行Grunt,手表很快就会用完。此命令增加用户可以拥有的最大监视数量。对于Arch Linux,将
fs.inotify.max_user_watches=524288
添加到
/etc/sysctl.d/99 sysctl.conf
,然后执行
sysctl--system
。这也将在重新启动期间持续存在。有关详细信息:
npm重复数据消除
为我清除了它。说明:
echo fs.inotify.max_user_watches=524288 | sudo-tee-a/etc/sysctl.conf
在文件/etc/sysctl.conf的末尾写入行“fs.inotify.max_user_watches=524288”
sudo-sysctl-p
在运行时重新配置内核,加载文件/etc/sysctl.conf作为参数谢谢你让小马高兴。它到底是做什么的?它肯定解决了我的问题。感谢@grindate'npm dedupe'命令遍历您的npm模块树,并尽可能地将树中的每个包向上移动。结果是一棵扁平的树。即使包没有复制,它也会移动包。您可以阅读更多关于本例中不同版本模块发生的情况,当时没有帮助,我尝试了
sudo
,现在它对我有效。在本例中,我的问题似乎是安装了Dropbox,它似乎使用了很多手表。因此,我不得不使用:
fs.inotify.max_user_watches=524288 | sudo tee-a/etc/sysctl.conf&&sudo sysctl-p
作为公认的答案,但是+1用于教我
npm重复数据消除
对于任何查看此内容的人来说,这并不是特定于
grunt
,而是任何在下面使用的程序。这里有一个很好的解释。这应该是公认的答案,因为问题自然是由当前正在运行的内容引起的,而不是由错误的配置引起的(请参阅“小马”示例)。我对vscode也有同样的解释,但我认为它也与文件监视有关
 25 /proc/2857/fd/anon_inode:inotify
  9 /proc/2880/fd/anon_inode:inotify
  4 /proc/1375/fd/anon_inode:inotify
  3 /proc/1851/fd/anon_inode:inotify
  2 /proc/2611/fd/anon_inode:inotify
  2 /proc/2414/fd/anon_inode:inotify
  1 /proc/2992/fd/anon_inode:inotify