J'ai récemment travaillé sur un serveur de construction à la demande. Le serveur de construction est une API REST NodeJS/Express, qui enveloppe essentiellement l'interface de ligne de commande Angular CLI et les outils de construction associés pour compléter une application Angular à la demande personnalisée.
Tout fonctionne comme prévu de bout en bout, mais j'aimerais pouvoir obtenir des rapports d'état plus détaillés, car les constructions Angular peuvent être assez longues lorsque l'on prend en compte 2 parties très longues du processus
Les deux parties les plus longues du processus :
- l'
npm install
(généralement automatiquement lancé via l'esquéma ng-new de la collection de schémas @angular/schematics par défaut) - la commande
ng build
.
Le 2 est facile à gérer, car je lance ce processus (ng build --prod
) via child_process.spawn()
directement.
Le 1 s'est révélé un peu plus compliqué, car le processus npm install
à longue exécution est en fait lancé en interne par la commande/esquème Angular ng-new par défaut. Donc, si ma réflexion est correcte, il s'agit essentiellement d'un processus enfant explicitement lancé (mon ng new
lancé) qui lance internement npm install
.
Une solution de contournement que j'ai trouvée est de passer l'argument --skip-install
à ng new
, ce qui empêchera le processus interne npm install
d'être lancé par le schéma. En faisant cela, je peux alors manuellement lancer npm install
via child_process.spawn()
et observer directement les flux de sortie standard et d'erreur.
Je suis curieux de savoir si quelqu'un sait comment espionner les flux d'erreur standard et de sortie standard du 'npm install' lancé à l'intérieur de ma commande ng new
explictement lancée?
Merci!