当前位置:  开发笔记 > 编程语言 > 正文

Node.JS:获取错误:[nodemon]内部监视失败:观看ENOSPC

如何解决《Node.JS:获取错误:[nodemon]内部监视失败:观看ENOSPC》经验,为你挑选了6个好方法。

我刚刚第一次安装Node.js在我的Ubuntu 14.04操作系统上.我也安装了npm.我的安装过程的下一步是安装nodemon.这一切都很好.


但是,当我nodemon通过输入nodemon app.js我的命令行运行时,我收到以下错误...

[nodemon] 1.8.1 [nodemon] to restart at any time, enterrs [nodemon] watching: *.* [nodemon] startingnode app.js [nodemon] Internal watch failed: watch ENOSPC

在命令行下面的错误...

alopex@Alopex:~/Desktop/coding_dojo/week-9/javascript/node/testing_node$ Hello World

为什么会这样?这是nodemon的正常行为吗?如果没有,我该如何解决?


旁注......

1)app.js是一个内部的Javascript文件console.log(111).
2)node版本是v0.10.25
3)npm版本是1.3.10
4)nodemon版本是1.8.1
5)ubuntu版本是...

Distributor ID: Ubuntu
Description:    Ubuntu 14.04.3 LTS
Release:    14.04
Codename:   trusty

Erik Åsland.. 383

我的最大端口似乎没有正确配置.我运行了以下代码,它有效...

echo fs.inotify.max_user_watches=582222 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

此命令的作用是增加单个用户允许的监视数量.默认情况下,该数字可以为低(例如8192).当nodemon试图观察大量目录的变化时,它必须创建几个手表,这可以超过这个限制.

您还可以通过以下方式解决此问题:

sudo sysctl fs.inotify.max_user_watches=582222 && sudo sysctl -p

但它首先编写的方式将使这种变化永久化.



1> Erik Åsland..:

我的最大端口似乎没有正确配置.我运行了以下代码,它有效...

echo fs.inotify.max_user_watches=582222 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

此命令的作用是增加单个用户允许的监视数量.默认情况下,该数字可以为低(例如8192).当nodemon试图观察大量目录的变化时,它必须创建几个手表,这可以超过这个限制.

您还可以通过以下方式解决此问题:

sudo sysctl fs.inotify.max_user_watches=582222 && sudo sysctl -p

但它首先编写的方式将使这种变化永久化.


@Hinrich,这只是猜测,我认为nodejs通过inotify库监视文件系统的变化.我认为每个用户对最大手表数量有限制,此设置会更改为更大的值.
有人可以解释一下这是做什么的,并详细阐述它为什么会有所帮助?
从Ubuntu 14.04到Ubuntu 16.04之后,我刚刚发生了这件事.您的解决方案也适用于我.谢谢
@devrimbaris正确!
请添加一些关于上述命令的描述?
如果您在Arch上,请将它放在`/ etc/sysctl.d/90-override.conf`上
适用于Ubuntu 17.04
Downvote不提供描述代码的含义

2> pawanpandey3..:

Erik,你可以通过杀死所有其他节点进程

pkill -f节点

然后再次重新启动服务器.它会工作得很好.



3> Mani Abi Ana..:

在运行节点服务器上显示以下错误和解决方案:

nodemon server.js

[nodemon] 1.17.2

[nodemon]随时重启,输入 rs

[nodemon]观看:.

[nodemon]开始 node server.js

[nodemon]内部手表失败:观看/ home/aurum304/jin ENOSPC

sudo pkill -f node

要么

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p



4> Zubair Alam..:

根据这里的讨论,ENOSPC意味着Error No more hard-disk space available.之所以需要这么大的内存,nodemon或者gulp-nodemon(在我的情况下)是因为它正在观看它不应该的文件夹的内容.要修复该nodemon的ignore设置,可以用来告诉nodemon不要看什么.在这里查看nodemon示例配置.



5> codeinaire..:
[nodemon] Internal watch failed: watch /home/Document/nmmExpressServer/bin ENOSPC
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! nmmexpressserver@0.0.0 start: `nodemon ./bin/www`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the nmmexpressserver@0.0.0 start script.

这是我跑步时遇到的错误nodemon ./bin/www.

解决方案是关闭一个Atom窗口,该窗口在项目窗口中打开了整个文件夹目录.

我不知道为什么,但我假设Atom和nodemon使用类似的进程来监视文件/文件夹.


那正是我的问题。我很想从项目的安装目录启动原子。我关闭了atom,从另一个目录启动了它,问题消失了。

6> Ahmed Solima..:

添加nodemon.json在你的根文件夹的配置文件,并指定忽略,例如模式:

nodemon.json

{
  "ignore": [
    "*.test.js", 
    "dist/*"
  ]
}

注意,默认情况下.gitnode_modulesbower_components.nyc_outputcoverage.sass-cache被忽略,所以你并不需要将它们添加到您的配置做。

说明:此错误是因为你超出你的系统允许观察者的最大数量(即nodemon没有更多的磁盘空间来监视所有文件-这可能意味着你正在看并不重要文件)。所以你忽略非重要的文件,你不关心编译输出的测试案例在他们的变化,例如或。

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有