2017-02-08 7 views
0

Verwendung des folgenden Codes die stdout Daten aus dem "npm update" Kind-Prozess zu erhalten:NodeJS npm Update-Status Ausgabe

var child = require('child_process').exec('npm update'); 

child.stdout.on('data', function(data) { 
    console.log("data :"+data.toString()); 
} 

nur die letzten Nachrichten aus dem Prozess bekommen:

enter image description here

Wollen Info-Nachrichten erhalten, die während der Aktualisierung angezeigt:

enter image description here

Antwort

0

Ich denke, ich habe eine mögliche Antwort, die Informationen, die während der Ausführung von npm angezeigt wird, entspricht der ausführlichen Ausgabe auf Protokollebene. Wenn wir also den loglevel auf verbose setzen (standardmäßig 'warn'), erhalten wir die Verbose Ausgabe an stderr, was der Standard-Stream ist, wie in der Dokumentation angegeben. Folgendes löste mein Problem:

var child = require('child_process').exec('npm update --loglevel="verbose"'); 

child.stderr.on('data', function(data) { 
     logger.info("npm update status:", data.toString()); 
    });