我第一次在我的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
答案 0 :(得分:323)
我的最大端口似乎未正确配置。我运行了以下代码并且它有效...
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 :(得分:21)
Erik, 您可以通过
杀死所有其他节点进程pkill -f节点
,然后再次重新启动服务器。这样就可以了。
答案 2 :(得分:16)
entriesToObject
这是我在运行[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.
时遇到的错误。
解决方案正在关闭一个Atom窗口,它在项目窗口中打开了整个文件夹目录。
我不知道为什么,但我假设Atom和nodemon使用类似的进程来观看文件/文件夹。
答案 3 :(得分:11)
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
这对我有用
答案 4 :(得分:8)
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
答案 5 :(得分:4)
在根文件夹中添加nodemon.json
配置文件,并指定忽略模式,例如:
nodemon.json
{
"ignore": [
"*.test.js",
"dist/*"
]
}
.git
,node_modules
,bower_components
,.nyc_output
,coverage
和.sass-cache
会被忽略,因此您不会需要将它们添加到您的配置中。说明:发生此错误是因为您超出了系统允许的最大观察者数量(即nodemon
没有更多的磁盘空间来观看所有文件 - 这可能意味着您正在观看不重要的文件)。因此,您忽略了不重要的非重要文件,例如构建输出或测试用例。
答案 6 :(得分:1)
您还可以指定要监视的目录列表(例如正面),而不是指定要忽略的目录列表(例如,否定):
nodemon --watch dir1 --watch dir2 dir1/examples/index.js
在我的特定情况下,我有一个我想要观看的目录和大约九个我想忽略的目录,所以指定'--watch'比指定'--ignore'
要简单得多答案 7 :(得分:1)
尝试一下。...
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
会反抗工作
答案 8 :(得分:0)
我有同样的错误,但在Windows 10中的Ubuntu 14.04(Windows上的Ubuntu上的Bash)。我所做的只是为了更新Creators更新,然后允许我安装16.04版本的Ubuntu bash然后安装最新版本的节点(通过this步骤)我安装了最新版本的npm然后nodemon开始正常工作。
答案 9 :(得分:0)
如果操作系统是Linux,则只需使用它即可
sudo npm run server
答案 10 :(得分:0)
尝试使用您的 app.js 所在的更多特定目录重新打开 VS 代码或 Atom。 我打开了很多文件夹,出现了这个问题。但是一旦我打开我的特定文件夹并再次尝试,它就成功了。
答案 11 :(得分:0)
必须有比我建议的更好的方法来解决这个问题。我希望一些专家登陆这个页面。另请注意,我正在开发服务器上工作,因此有能力杀死 node.js 的所有进程。这可能不是您想要的。
我按照@zubair-alam的回答第一次解决了这个问题。我在 package.json 中添加了“ignore”(即使引用的链接说它是默认值)。
........ 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
您必须使用特定于您的操作系统的命令来更改 killall 命令。请参阅 this 讨论。
答案 12 :(得分:-1)
以我为例,关闭Visual Studio代码,然后启动服务器就可以了
操作系统-Ubuntu 16.4 lts
node.js版本-8.11.1
npm版本-6.0.0