Node.JS:エラーの取得:[nodemon]内部監視が失敗しました:ENOSPCを監視します


136

オペレーティングシステムに初めてインストールし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] startingノード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

回答:


451

最大ポート数が正しく設定されていないようです。私は次のコードを実行しましたが、うまくいきました...

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

このコマンドの機能は、1人のユーザーに許可される監視の数を増やすことです。デフォルトでは、数値を低くすることができます(たとえば8192)。nodemon変更について多数のディレクトリを監視しようとすると、その制限を超える可能性のあるいくつかの監視を作成する必要があります。

この問題は次の方法でも解決できます。

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

しかし、それが最初に書かれた方法は、この変更を永続的なものにします。


6
誰かがこれが何をするのかをもう少し説明し、なぜそれが役立つのかについて詳しく説明できますか?
Hinrich

11
@Hinrich、それは単なる推測です、nodejsはinotifyライブラリを介してファイルシステムの変更を監視すると思います。時計の最大数にはユーザーごとの制限があると思います。この設定はより大きな値に変更されます。
ᐅdevrimbaris

2
@devrimbaris正解です。
ErikÅsland2016年

3
Ubuntu 14.04からUbuntu 16.04に移行したばかりです。あなたの解決策も私にとってうまくいきました。ありがとう
メストレサン

2
/etc/sysctl.d/90-override.confArch を使用している場合はこれを付けてください
OverCoder 2017年

28

エリック、あなたは他のすべてのノードプロセスを殺すことができます

pkill -fノード

その後、サーバーを再起動します。それで問題なく動作します。


7
これもVisual Studioのコードウィンドウがフリーズしたため、反対票を投じます。
LexH

これは魅力のように働いていました...今まで!現在は効果がなく、同じエラーが発生しています。
ケストレル

28

ノードサーバーを実行すると、次のエラーと解決策が表示されます。

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

19

ここでの議論による、をENOSPC意味しError No more hard-disk space availableます。nodemonまたはgulp-nodemon(私の場合)にこれだけ多くのメモリが必要な理由は、フォルダーの内容を監視してはならないためです。そのnodemonを修正するignoreために、監視しないものをnodemonに伝えるために使用できる設定があります。ここでnodemonサンプル構成を見てください


これは根本的な原因です。
lutaoact

16
[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が同様のプロセスを使用してファイル/フォルダーを監視していると想定しています。


2
それがまさに私の問題でした。私はプロジェクトのインストールディレクトリからAtomを起動できました。アトムを閉じて別のディレクトリから起動すると、問題は解消しました。
はい。

私の場合、UbuntuのSublimeでも同じことが起こりました。IDEを閉じたところ、正しく実行できました。それについて何かヒントはありますか?
Shad

それが修正されているかどうかを確認するためにそれを複製しようとはしていません。
codeinaire

ありがとう。私がギトクラケンを閉じた後、鉱山は働くことができます。これは奇妙な問題です。つまり、2つのプロセスで同じフォルダを監視することはできないということですか。
Zhang LongQI 2018年

これはNextcloudクライアントで、大量のinotifyウォッチを使用しています。ありがとう、みんな!
ビルマクゴニグル

8

これを試して....

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

反抗的に動作します


1
私はこの反抗の反抗的な性質が好きです
SimplyKnownAsG 19/12/12

7

nodemon.jsonルートフォルダーに構成ファイルを追加し、無視パターンを指定します。次に例を示します。

nodemon.json

{
  "ignore": [
    "*.test.js", 
    "dist/*"
  ]
}
  • なお、デフォルトでは.gitnode_modulesbower_components.nyc_outputcoverageそして.sass-cache、あなたの設定に追加する必要はありませんので、無視されます。

説明:このエラーは、システムで許可されているウォッチャーの最大数を超えたために発生します(つまりnodemon、すべてのファイルを監視するためのディスク領域がありません-重要なファイルを監視していない可能性があります)。そのため、ビルド出力やテストケースなど、それらの変更を気にしない重要でないファイルは無視します。


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

これは私のために働いた


1
これが質問にどのように答えるかの説明を追加してください。
Jason Aller

適切に機能
Rohit Parte

3

私の場合、Visual Studioコードを閉じてからサーバーを起動すると

オペレーティングシステム-ubuntu 16.4 lts

node.jsバージョン-8.11.1

npmバージョン-6.0.0


彼はビジュアルスタジオを使っていなかったようです。
Julien Revault d'A ...

1
これは質問に直接答えることはできませんが(質問にはVS Codeが含まれないため)、これで問題が解決しました。
Chasen Bettinger

2

無視するディレクトリのリスト(たとえば、否定)を指定する代わりに、監視するディレクトリのリスト(たとえば、肯定)を指定することもできます。

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

私の特定のケースでは、監視したいディレクトリが1つあり、無視したいディレクトリが約9つあったため、「-watch」を指定する方が「--ignore」を指定するよりもはるかに簡単でした


0

私は同じエラーを抱えていましたが、Windows 10内のUbuntu 14.04(Windows上のUbuntuではBash)でした。エラーを克服するために私が行ったのは、Creatorsの更新を更新することだけでした。それにより、16.04バージョンのUbuntu bashをインストールでき、最新バージョンのノードを(この手順で)インストールした後、最新バージョンのnpmをインストールしてから、nodemonをインストールしました。正常に動作し始めました。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.