web-dev-qa-db-ja.com

Reactネイティブエラー:ENOSPC:ファイル監視の数のシステム制限に達しました

新しい空の反応ネイティブアプリをセットアップしました。

いくつかのノードモジュールをインストールした後、このエラーが発生しました。

enter image description here

それは、監視人がすべてのファイル変更を監視するのに十分なスペースがないことに関連していることを知っています。

ここで取るべき最善の行動は何か知りたいですか?

node_modulesに追加して.watchmanconfigフォルダーを無視する必要がありますか?

48
Badis Merabet

編集してみてください

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

cat /proc/sys/fs/inotify/max_user_watches

fs.inotify.max_user_watches=524288
71

このエラーの意味は、システムによって監視されるファイルの数が制限に達したことです!!

結果:実行されたコマンドは失敗しました!または警告をスローする(反応ネイティブの開始VSCodeの実行など)

解決:

システム監視ファイルの数を変更する

Ubuntu

Sudo gedit /etc/sysctl.conf

下部に線を追加します

fs.inotify.max_user_watches=524288

保存して終了します!

Sudo sysctl -p

それをチェックする

その後、解決されます!

39
YASH THUMAR

あなたはそれを修正することができますinotifyウォッチャーの量を増やします。

技術的な詳細に興味がなく、Listenを機能させたいだけの場合:

  • Debian、RedHat、またはその他の類似のLinuxディストリビューションを実行している場合は、ターミナルで次のコマンドを実行します。

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

  • ArchLinuxを実行している場合は、代わりに次のコマンドを実行します

    $ echo fs.inotify.max_user_watches=524288 | Sudo tee /etc/sysctl.d/40-max-user-watches.conf && Sudo sysctl --system

次に、それをターミナルに貼り付け、Enterキーを押して実行します。


技術的な詳細

Linuxのデフォルトでは、listenはinotifyを使用してディレクトリの変更を監視します。監視できるファイル数のシステム制限に遭遇することは珍しいことではありません。たとえば、Ubuntu Lucidの(64ビット)inotify制限は8192に設定されています。

次のコマンドを実行すると、現在のinotifyファイルの監視制限を取得できます。

$ cat /proc/sys/fs/inotify/max_user_watches

この制限がディレクトリ内のすべてのファイルを監視するのに十分でない場合、Listenが適切に機能するには、制限を増やす必要があります。

次のコマンドで一時的に新しい制限を設定できます。

$ Sudo sysctl fs.inotify.max_user_watches=524288
$ Sudo sysctl -p

制限を永続的にしたい場合は、以下を使用します。

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

また、listenが問題を解決しない場合は、max_queued_eventsmax_user_instancesの値に注意する必要があります。

18
snishalaka

公式ドキュメント から:

"Visual Studio Codeはこの大きなワークスペースでファイルの変更を監視できません"(エラーENOSPC)

この通知が表示された場合、ワークスペースが大きく、多くのファイルが含まれているため、VS Codeファイルウォッチャーのハンドルが不足していることを示しています。現在の制限は、次のコマンドを実行して表示できます。

cat /proc/sys/fs/inotify/max_user_watches

制限は編集することで最大に増やすことができます

/etc/sysctl.conf

次の行をファイルの最後に追加します。

fs.inotify.max_user_watches = 524288

次に、次のコマンドを実行して新しい値をロードできます。

Sudo sysctl -p

Arch Linuxの動作は少し異なることに注意してください。詳細については、inotifyウォッチャーの数を増やすをご覧ください。

524,288は監視できるファイルの最大数ですが、特にメモリに制約のある環境にいる場合は、その数を減らすことをお勧めします。各ファイルウォッチは540バイト(32ビット)または〜1kB(64ビット)を消費するため、すべての524,288ウォッチが消費されると仮定すると、上限は約256MB(32ビット)または512MB(64ビット)になります。 )。

別のオプション

files.watcherExclude設定を使用して、VS Codeファイルウォッチャーから特定のワークスペースディレクトリを除外します。 files.watcherExcludeのデフォルトでは、node_modulesと.gitの下の一部のフォルダーが除外されますが、VS Codeに追跡させたくない他のディレクトリを追加できます。

"files.watcherExclude": {
    "**/.git/objects/**": true,
    "**/.git/subtree-cache/**": true,
    "**/node_modules/*/**": true
  }
3
HoangYell

反応node_modulesを削除する

rm -r node_modules

yarn or npm install

yarn start or npm start

エラーが発生した場合は、このメソッドを再度使用してください

2
The Oblivious

私はSudo ieを使用してこの問題を解決しました

Sudo yarn start

または

Sudo npm start
0
prem