内部监视失败: 监视 ENOSPC

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


但是,当我在命令行中键入 nodemon app.js运行 nodemon时,会得到以下错误...

[非恶魔]1.8.1 要随时重新启动,请输入 rs < code > 观看: * . * 开始 node app.js < code > 内部监视失败: 监视 ENOSPC

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

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

为什么会发生这样的事情? 这是非恶魔的正常行为吗? 如果不是,我该怎么补救?


边注..。

1) app.js是一个 Javascript文件,其中包含 console.log(111)
2) node版本为 v0.10.25
3) npm版本为 1.3.10
4) nodemon版本为 1.8.1
5) ubuntu版本是... < br >

Distributor ID: Ubuntu
Description:    Ubuntu 14.04.3 LTS
Release:    14.04
Codename:   trusty
170309 次浏览

似乎我的最大端口配置不正确。我运行以下代码,它工作..。

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

但是它最初的写作方式将使这种改变永久化。

根据对 给你的讨论,ENOSPC意味着 Error No more hard-disk space availablenodemongulp-nodemon(在我的例子中)需要这么多内存的原因是它在监视一个文件夹的内容,而这个文件夹本不应该监视这些内容。要修复没有恶魔的 ignore设置,可以用来告诉没有恶魔什么不要看。看一下 noemon 示例配置 给你

我也有同样的错误,但是在 Windows 10的 Ubuntu 14.04中(Windows 上的 Ubuntu 上的 Bash)。为了克服这个错误,我所做的就是更新了 Creators 的更新,这个更新允许我安装16.04版本的 Ubuntu bash,然后在安装了最新版本的节点(按照 这个步骤)之后,我又安装了最新版本的 npm,然后 noemon 就开始正常工作了。

您不需要指定要忽略的目录列表(例如负面) ,也可以指定要监视的目录列表(例如正面) :

nodemon --watch dir1 --watch dir2  dir1/examples/index.js

在我的特殊情况下,我有一个想要监视的目录和大约9个想要忽略的目录,所以指定“—— watch”比指定“——忽略”要简单得多

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

nodemon.json

{
"ignore": [
"*.test.js",
"dist/*"
]
}
  • 请注意,默认情况下,.gitnode_modulesbower_components.nyc_outputcoverage.sass-cache将被忽略,因此不需要将它们添加到配置中。

说明: 发生这个错误是因为你超过了系统允许的最大监视器数量(也就是说 nodemon没有更多的磁盘空间来监视所有的文件——这可能意味着你正在监视不重要的文件)。所以忽略不重要的文件,这些文件不关心其中的更改,例如构建输出或测试用例。

[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 和 noemon 使用类似的进程来监视文件/文件夹。

艾瑞克, 您可以通过以下方法杀死所有其他节点进程

Pkill-f 节点

然后再重启你的服务器。它会工作得很好。

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

不是恶魔服务器

1.17.2

要在任何时候重新启动,请输入 rs

观看: .

启动 node server.js

内部监视失败: watch/home/aurum304/jin ENOSPC

sudo pkill -f node

或者

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

在我的情况下,关闭视觉工作室的代码,然后启动服务器的技巧

操作系统-ubuntu 16.4 lts

Js version-8.11.1

Npm 版本-6.0.0

尝试使用更多的 特定目录重新打开 VS 代码或 Atom,其中包含 app.js。 我有很多文件夹打开,这个问题发生了。但是一旦我打开我的特定文件夹,并再次尝试,它工作。

肯定有比我建议的更好的解决办法。我希望有些专家能在这一页上发表意见。还要注意,我正在使用一个开发服务器,因此可以停止节点的所有进程。这可能不是你想要的。

我按照 @ zubair-alam的答案,第一次把它修好了。我在 package.json 中添加了“忽略”(即使引用的链接说它是默认的)。

 ........ Before
"ignore": [
".git",
"node_modules/**/node_modules"
],
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "nodemon ./index.js --exec babel-node -e js"
},
........ After

但是,当我向文件夹添加新文件时,错误再次返回。我在 Linux 上工作,所以我基本上杀死了所有与 node 相关的进程,具体方法如下。

killall node

然后通过以下命令重新启动 npm。服务器启动时没有错误。

npm start

您必须使用特定于您的操作系统的命令更改 kill all 命令。