2013-02-23 12 views
15

Ich habe ein Verfahren unter Verwendung von Grunt hervorgebracht, aber nichts, was in den Ausgabestream geschrieben wird (wie console.log) angezeigt in der Konsole wird.Grunt erzeugten Prozess nicht ausgegeben Erfassung

Ich möchte Grunt aus dem Prozess keine Ausgabe angezeigt werden soll.

grunt.util.spawn(
    { cmd: 'node' 
    , args: ['app.js'] 
    , opts: 
     { stdio: 
      [ process.stdin 
      , process.stout 
      , process.stderr 
      ] 
     } 
    }) 

Antwort

33

Versuchen Sie es auf opts: {stdio: 'inherit'}. Ansonsten können Sie die Ausgabe mittels Pipelining:

var child = grunt.util.spawn({ 
    cmd: process.argv[0], // <- A better way to find the node binary 
    args: ['app.js'] 
}); 
child.stdout.pipe(process.stdout); 
child.stderr.pipe(process.stderr); 

Oder wenn Sie möchten, um die Ausgabe ändern:

child.stdout.on('data', function(buf) { 
    console.log(String(buf)); 
}); 
+1

'stdio:‚inherit'' funktioniert der Trick, und danke für den Tipp des Knoten binären finden ! –