web-dev-qa-db-fra.com

React Erreur native: ENOSPC: limite système pour le nombre d'observateurs de fichiers atteinte

J'ai configuré une nouvelle application native React vierge.

Après avoir installé quelques modules de noeud, j'ai eu cette erreur.

enter image description here

Je sais que cela est lié à un espace insuffisant pour que Watchman puisse surveiller toutes les modifications de fichiers.

Je veux savoir quel est le meilleur plan d'action à prendre ici?

Dois-je ignorer node_modules dossier en l'ajoutant à .watchmanconfig?

48
Badis Merabet

Vous pouvez essayer de modifier

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
Abdulla Thanseeh

La signification de cette erreur est que le nombre de fichiers surveillés par le système a atteint la limite !!

Résultat: la commande exécutée a échoué! Ou lancez un avertissement (comme l'exécution d'un VSCode de démarrage natif)

Solution:

Modifier le nombre de fichiers de surveillance du système

Ubuntu

Sudo gedit /etc/sysctl.conf

Ajouter une ligne en bas

fs.inotify.max_user_watches=524288

Ensuite, enregistrez et quittez!

Sudo sysctl -p

pour le vérifier

Ensuite, c'est résolu!

39
YASH THUMAR

Vous pouvez le corriger, cela augmentant le nombre d'observateurs inotifiés.

Si vous n'êtes pas intéressé par les détails techniques et que vous souhaitez uniquement que Listen to work:

  • Si vous exécutez Debian, RedHat ou une autre distribution Linux similaire, exécutez ce qui suit dans un terminal:

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

  • Si vous exécutez ArchLinux, exécutez la commande suivante à la place

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

Collez-le ensuite dans votre terminal et appuyez sur Entrée pour l'exécuter.


Les détails techniques

Listen utilise inotify par défaut sous Linux pour surveiller les répertoires pour les changements. Il n'est pas rare de rencontrer une limite système sur le nombre de fichiers que vous pouvez surveiller. Par exemple, la limite d'inotification d'Ubuntu Lucid (64 bits) est définie sur 8192.

Vous pouvez obtenir votre limite de surveillance de fichiers inotify actuelle en exécutant:

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

Lorsque cette limite n'est pas suffisante pour surveiller tous les fichiers d'un répertoire, la limite doit être augmentée pour que Listen fonctionne correctement.

Vous pouvez définir une nouvelle limite temporaire avec:

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

Si vous souhaitez rendre votre limite permanente, utilisez:

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

Vous devrez peut-être également faire attention aux valeurs de max_queued_events et max_user_instances si écouter continue de se plaindre.

18
snishalaka

Du document officiel :

"Visual Studio Code n'est pas en mesure de surveiller les modifications de fichiers dans ce grand espace de travail" (erreur ENOSPC)

Lorsque vous voyez cette notification, cela indique que l'observateur de fichiers VS Code manque de poignées car l'espace de travail est grand et contient de nombreux fichiers. La limite actuelle peut être consultée en exécutant:

cat /proc/sys/fs/inotify/max_user_watches

La limite peut être augmentée à son maximum en modifiant

/etc/sysctl.conf

et en ajoutant cette ligne à la fin du fichier:

fs.inotify.max_user_watches = 524288

La nouvelle valeur peut ensuite être chargée en exécutant

Sudo sysctl -p

Notez qu'Arch Linux fonctionne un peu différemment, voir Augmenter le nombre d'observateurs inotify pour plus de détails.

Bien que 524,288 soit le nombre maximal de fichiers pouvant être surveillés, si vous vous trouvez dans un environnement particulièrement limité en mémoire, vous souhaiterez peut-être réduire le nombre. Chaque surveillance de fichier occupe 540 octets (32 bits) ou ~ 1 Ko (64 bits), donc en supposant que toutes les 524 288 montres sont consommées, ce qui se traduit par une limite supérieure d'environ 256 Mo (32 bits) ou 512 Mo (64 bits) ).

Une autre option

consiste à exclure des répertoires d'espace de travail spécifiques de l'observateur de fichiers VS Code avec le paramètre files.watcherExclude. La valeur par défaut pour files.watcherExclude exclut node_modules et certains dossiers sous .git, mais vous pouvez ajouter d'autres répertoires que vous ne voulez pas que VS Code suive.

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

supprimer réagir node_modules

rm -r node_modules

yarn or npm install

yarn start or npm start

si une erreur se produit, utilisez à nouveau cette méthode

2
The Oblivious

J'ai résolu ce problème en utilisant Sudo ie

Sudo yarn start

ou

Sudo npm start
0
prem