Ich habe eine neue leere reaktionsfähige native App eingerichtet.
Nach der Installation einiger Knotenmodule wurde dieser Fehler angezeigt.
Running application on PGN518.
internal/fs/watchers.js:173
throw error;
^
Error: ENOSPC: System limit for number of file watchers reached, watch '/home/badis/Desktop/react-native/albums/node_modules/.staging'
at FSWatcher.start (internal/fs/watchers.js:165:26)
at Object.watch (fs.js:1253:11)
at NodeWatcher.watchdir (/home/badis/Desktop/react-native/albums/node modules/sane/src/node watcher. js:175:20)
at NodeWatcher.<anonymous> (/home/badis/Desktop/react-native/albums/node modules/sane/src/node watcher. js:310:16)
at /home/badis/Desktop/react-native/albums/node modules/graceful-fs/polyfills.js:285:20
at FSReqWrap.oncomplete (fs.js:154:5)
Ich weiß, dass es nicht genug Platz für den Wachmann gibt, um nach allen Dateiänderungen zu suchen.
Ich möchte wissen, wie ich hier am besten vorgehen kann.
Sollte ich den node_modules
Ordner ignorieren, indem ich ihn hinzufüge .watchmanconfig
?
react-native
watchman
Badis Merabet
quelle
quelle
Antworten:
Linux verwendet das inotify- Paket, um Dateisystemereignisse, einzelne Dateien oder Verzeichnisse zu beobachten.
Da React / Angular Dateien beim Speichern neu lädt und neu kompiliert, müssen alle Projektdateien im Auge behalten werden. Durch Erhöhen des Inotify-Überwachungslimits sollten die Warnmeldungen ausgeblendet werden.
Sie könnten versuchen, zu bearbeiten
quelle
Die Bedeutung dieses Fehlers ist, dass die Anzahl der vom System überwachten Dateien das Limit erreicht hat !!
Ergebnis: Der ausgeführte Befehl ist fehlgeschlagen! Oder geben Sie eine Warnung aus (z. B. Ausführen eines reaktionsnativen Start-VSCodes).
Lösung:
Ändern Sie die Anzahl der Systemüberwachungsdateien
Ubuntu
sudo gedit /etc/sysctl.conf
Fügen Sie unten eine Zeile hinzu
fs.inotify.max_user_watches=524288
Dann speichern und beenden!
sudo sysctl -p
um es zu überprüfen
Dann ist es gelöst!
quelle
Sie können das Problem beheben, indem Sie die Anzahl der inotify-Beobachter erhöhen.
Wenn Sie nicht an den technischen Details interessiert sind und nur Listen to work erhalten möchten:
Wenn Sie Debian, RedHat oder eine andere ähnliche Linux-Distribution ausführen, führen Sie Folgendes in einem Terminal aus:
$ echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
Wenn Sie ArchLinux ausführen, führen Sie stattdessen den folgenden Befehl aus
$ echo fs.inotify.max_user_watches=524288 | sudo tee /etc/sysctl.d/40-max-user-watches.conf && sudo sysctl --system
Fügen Sie es dann in Ihr Terminal ein und drücken Sie die Eingabetaste, um es auszuführen.
Die technischen Details
Listen verwendet unter Linux standardmäßig inotify, um Verzeichnisse auf Änderungen zu überwachen. Es ist nicht ungewöhnlich, dass die Anzahl der Dateien, die Sie überwachen können, auf ein System begrenzt ist. Beispielsweise ist das Inotify-Limit von Ubuntu Lucid (64 Bit) auf 8192 festgelegt.
Sie können Ihr aktuelles Limit für die Überwachung von Inotify-Dateien ermitteln, indem Sie Folgendes ausführen:
Wenn dieses Limit nicht ausreicht, um alle Dateien in einem Verzeichnis zu überwachen, muss das Limit erhöht werden, damit Listen ordnungsgemäß funktioniert.
Sie können vorübergehend ein neues Limit festlegen mit:
Wenn Sie Ihr Limit dauerhaft festlegen möchten, verwenden Sie:
Möglicherweise müssen Sie auch auf die Werte von achten
max_queued_events
undmax_user_instances
wenn Sie zuhören, beschweren Sie sich weiter.quelle
löschen reagieren node_modules
Wenn ein Fehler auftritt, verwenden Sie diese Methode erneut
quelle
Aus dem offiziellen Dokument :
"Visual Studio Code kann in diesem großen Arbeitsbereich nicht nach Dateiänderungen suchen" (Fehler ENOSPC)
Wenn Sie diese Benachrichtigung sehen, zeigt dies an, dass dem VS Code-Datei-Watcher die Handles ausgehen, da der Arbeitsbereich groß ist und viele Dateien enthält. Das aktuelle Limit kann wie folgt angezeigt werden:
cat /proc/sys/fs/inotify/max_user_watches
Das Limit kann durch Bearbeiten auf das Maximum erhöht werden
und Hinzufügen dieser Zeile am Ende der Datei:
Der neue Wert kann dann durch Ausführen geladen werden
Beachten Sie, dass Arch Linux etwas anders funktioniert. Weitere Informationen finden Sie unter Erhöhen der Anzahl der inotify-Beobachter.
Während 524.288 die maximale Anzahl von Dateien ist, die überwacht werden können, möchten Sie möglicherweise die Anzahl verringern, wenn Sie sich in einer Umgebung befinden, in der der Speicher besonders eingeschränkt ist. Jede Dateiüberwachung benötigt 540 Byte (32 Bit) oder ~ 1 KB (64 Bit). Unter der Annahme, dass alle 524.288 Uhren verbraucht sind, ergibt sich eine Obergrenze von etwa 256 MB (32 Bit) oder 512 MB (64 Bit) ).
Mit der Einstellung files.watcherExclude sollen bestimmte Arbeitsbereichsverzeichnisse aus dem VS Code-Datei-Watcher ausgeschlossen werden. Die Standardeinstellung für files.watcherExclude schließt node_modules und einige Ordner unter .git aus. Sie können jedoch auch andere Verzeichnisse hinzufügen, die VS Code nicht verfolgen soll.
quelle
Ich habe dieses Problem mit sudo gelöst, dh
oder
quelle
sudo
ist nicht für diese Art der Verwendung vorgesehen und kann auch andere Probleme verursachen.Es passierte mir mit einer Node-App, die ich auf einer Debian-basierten Distribution entwickelte. Zuerst löste ein einfacher Neustart das Problem, aber es passierte erneut in einer anderen App.
Da dies mit der Anzahl der Beobachter zusammenhängt, die inotify verwendet, um Dateien zu überwachen und nach Änderungen in einem Verzeichnis zu suchen, müssen Sie eine höhere Anzahl als Limit festlegen:
Ich konnte es anhand der hier veröffentlichten Antwort lösen (danke an ihn!)
Also rannte ich:
Weitere Informationen zu den Vorgängen finden Sie unter https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers#the-technical-details
Ich hoffe es hilft!
quelle
Wie bereits von @snishalaka erwähnt, können Sie die Anzahl der inotify-Beobachter erhöhen.
Ich denke jedoch, dass die Standardanzahl hoch genug ist und nur erreicht wird, wenn Prozesse nicht ordnungsgemäß bereinigt werden. Daher habe ich meinen Computer einfach neu gestartet, wie in einem verwandten Github-Problem vorgeschlagen, und die Fehlermeldung war verschwunden.
quelle
Ich bin auf dieses Problem in einer Linuxmint- Distribution gestoßen . Es schien passiert zu sein, als es so viele Ordner und Unterordner / Dateien gab, die ich dem Ordner / public in meiner App hinzugefügt habe. Ich habe dieses Update angewendet und es hat gut funktioniert ...
$
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
Wechseln Sie in den Ordner / etc:
cd /etc
Führen Sie dann Folgendes aus:
sudo systcl -p
Möglicherweise müssen Sie Ihr Terminal immer
npm start
wieder schließen, damit es funktioniert.Wenn dies fehlschlägt, empfehle ich, React-Skripte global zu installieren und Ihre Anwendung direkt damit auszuführen.
$
npm i -g --save react-scripts
dann anstatt
npm start
ausführenreact-scripts start
, um Ihre Anwendung auszuführen.quelle
Bitte beziehen Sie sich auf diesen Link [1]. Visual Studio-Code hat eine kurze Erklärung für diese Fehlermeldung erwähnt. Ich habe auch den gleichen Fehler festgestellt. Durch Hinzufügen des folgenden Parameters in der relavanten Datei wird dieses Problem behoben.
[1] https://code.visualstudio.com/docs/setup/linux#_visual-studio-code-is-unable-to-watch-for-file-changes-in-this-large-workspace-error-enospc
quelle
Erstens können Sie jedes Mal mit Root-Rechten ausführen
sudo npm start
Oder Sie können den Ordner node_modules löschen und
npm install
zur erneuten Installation verwendenoder Sie können dauerhafte Lösung erhalten
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
quelle
Ich hatte das gleiche Problem mit der Bibliothek,
wifi
aber als ich mein Netzwerk änderte, funktionierte es perfekt.Ändern Sie Ihre Netzwerkverbindung
quelle