Je suis aux prises avec un problème où, lors de l'exécution d'une application angular app localement, le processus de nœud lié à ng serve
Utilise bien plus de 100% de mes cœurs de processeur.
Mon environnement actuel est:
CLI angulaire: 7.3.10 Nœud: 11.15.0 OS: darwin x64 (Mac OS X Catalina 10.15.4) Angulaire: 7.2.16
J'ai rencontré de nombreux articles et problèmes à ce sujet où les solutions courantes semblent être d'installer fsevents
pour les problèmes de Mac OS.
Les choses que j'ai essayées:
node-gyp
Pour reconstruire fsevents
après son installationfsevents
(2.1.3) car une version plus ancienne est spécifiée comme dépendance facultative avec angular-cli (1.2.13) nvm
aussinpm rebuild
Peu importe ce que j'essaie, je continue d'observer une utilisation élevée du processeur, je l'ai vu parfois grimper à 300-400%.
Cela entrave vraiment mon développement et j'espère que quelqu'un aura des idées brillantes que je pourrais essayer.
A défaut, je me demande si je devrais essayer de désinstaller complètement node
, en me débarrassant de nvm
et en partant de zéro.
MISE À JOUR - RÉSOL
J'ai donc choisi de supprimer nvm
et node
de ma machine et d'installer la dernière version stable du site Web nodeJS.
Cela n'a fait aucune différence lors du démarrage de mes applications.
Je suis tombé sur quelques articles parlant du comportement d'interrogation de Webpack et des options pour désactiver cette option ou pour augmenter l'intervalle d'interrogation.
J'ai trouvé qu'il y a un argument cli --poll [ms]
Qui peut être utilisé pour contrôler cette fréquence lorsque ng serve
Est en jeu.
En utilisant un argument --poll 1000
, J'ai maintenant deux de mes applications en cours d'exécution, chacune utilisant environ 30% de mon processeur. Donc bien plus bas que ce que j'ai observé ces derniers temps, mais je voulais voir si je pouvais descendre plus bas.
En utilisant un argument --poll 2000
, Je vois maintenant les processus de nœud pour ces applications en utilisant seulement environ 10-15%.
Lors de la détection des changements et de la recompilation des pics d'utilisation du processeur, auxquels je m'attendrais, puis redescend à ces niveaux inférieurs.
Donc, quelle qu'en soit la raison, fsevents
n'a aucun effet sur ma machine, elle est toujours en cours d'installation lorsque npm i
Mes dépendances d'application, et je l'ai installée globalement au cas où cela ferait une différence.
Quoi qu'il en soit, je suis plus heureux maintenant, même si j'aurais aimé comprendre pourquoi ce problème est survenu en premier lieu!
¯\_(ツ)_/¯
Peut-être avez-vous une configuration similaire pour votre rechargement à chaud/en direct sur Docker
comme ng serve --Host 0.0.0.0 --poll 1
. La valeur poll
est problématique, changez-la sur quelque chose de plus grand, par exemple 2000
, tel que ng serve --Host 0.0.0.0 --poll 2000
.
Maintenant, vous perdrez (presque) le rechargement à chaud/en direct en temps réel, mais vous économiserez votre CPU/batterie et aurez 2 secondes de retard avant que votre application actualise le code modifié.
il semble que j'ai réussi à résoudre le problème: supprimez le/node_module et réinstallez
dans mon cas, cela m'a aidé à trouver le conseil ici: https://gitmemory.com/issue/angular/angular-cli/14748/501608887
Essayez d'utiliser la commande ci-dessous
node --max_old_space_size=8048 ./node_modules/@angular/cli/bin/ng serve