我刚刚在我的Node.js
操作系统上安装了Ubuntu 14.04
。我还安装了npm
。我的安装过程的下一步是安装nodemon
。这一切都很好。
但是,当我通过在命令行中键入nodemon
来运行nodemon app.js
时,我收到以下错误...
[nodemon] 1.8.1
[nodemon] to restart at any time, enter
rs
[nodemon] watching: *.*
[nodemon] starting
node 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
我的最大端口似乎没有正确配置。我运行了以下代码,它有效...
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
但它首先编写的方式将使这种变化永久化。
Erik,你可以通过杀死所有其他节点进程
pkill -f节点
然后再次重新启动服务器。它会工作得很好。
[nodemon] Internal watch failed: watch /home/Document/nmmExpressServer/bin ENOSPC
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] start: `nodemon ./bin/www`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] start script.
这是我在运行nodemon ./bin/www
时遇到的错误。
解决方案是关闭一个Atom窗口,该窗口在项目窗口中打开了整个文件夹目录。
我不知道为什么,但我假设Atom和nodemon使用类似的进程来监视文件/文件夹。
nodemon server.js
[nodemon] 1.17.2
[nodemon]随时重启,输入
rs
[nodemon]观看:。
[nodemon]开始
node server.js
sudo pkill -f node
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
在根文件夹中添加nodemon.json
配置文件并指定忽略模式,例如:
nodemon.json
{
"ignore": [
"*.test.js",
"dist/*"
]
}
.git
,node_modules
,bower_components
,.nyc_output
,coverage
和.sass-cache
将被忽略,因此您无需将它们添加到您的配置中。说明:发生此错误是因为您超出了系统允许的最大观察者数量(即nodemon
没有更多的磁盘空间来观看所有文件 - 这可能意味着您正在观看的不是重要文件)。因此,您忽略了不关心其中的更改的非重要文件,例如构建输出或测试用例。
您还可以指定要监视的目录列表(例如正数),而不是指定要忽略的目录列表(例如否定):
nodemon --watch dir1 --watch dir2 dir1/examples/index.js
在我的特殊情况下,我有一个我想要观看的目录和大约九个我想忽略的目录,所以指定'--watch'要比指定'--ignore'简单得多
我有同样的错误,但在Windows 10中的Ubuntu 14.04(Windows上的Ubuntu上的Bash)。我所做的只是为了更新Creators更新,然后允许我安装16.04版本的Ubuntu bash,然后在安装最新版本的节点后(通过this步骤)我也安装了最新版本的npm然后是nodemon开始正常工作了。
在我的情况下关闭Visual Studio代码然后启动服务器就行了
操作系统 - ubuntu 16.4 lts
node.js版本 - 8.11.1
npm版本 - 6.0.0