J'ai configuré une nouvelle application native React vierge.
Après avoir installé quelques modules de noeud, j'ai eu cette erreur.
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
?
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
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!
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.
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
}
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
J'ai résolu ce problème en utilisant Sudo ie
Sudo yarn start
ou
Sudo npm start