我刚刚第一次安装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
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
但它首先编写的方式将使这种变化永久化.
我的最大端口似乎没有正确配置.我运行了以下代码,它有效...
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 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
根据这里的讨论,ENOSPC
意味着Error No more hard-disk space available
.之所以需要这么大的内存,nodemon
或者gulp-nodemon
(在我的情况下)是因为它正在观看它不应该的文件夹的内容.要修复该nodemon的ignore
设置,可以用来告诉nodemon不要看什么.在这里查看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和nodemon使用类似的进程来监视文件/文件夹.
添加nodemon.json
在你的根文件夹的配置文件,并指定忽略,例如模式:
nodemon.json
{ "ignore": [ "*.test.js", "dist/*" ] }
注意,默认情况下.git
,node_modules
,bower_components
,.nyc_output
,coverage
和.sass-cache
被忽略,所以你并不需要将它们添加到您的配置做。
说明:此错误是因为你超出你的系统允许观察者的最大数量(即nodemon
没有更多的磁盘空间来监视所有文件-这可能意味着你正在看并不重要文件)。所以你忽略非重要的文件,你不关心编译输出的测试案例在他们的变化,例如或。