2013-02-23 8 views
15

Zrobiłem proces używając Grunta, ale nic, co jest zapisane w strumieniu wyjściowym (takim jak console.log) jest wyświetlane w konsoli.Gruntowany proces odradzania nie przechwytujący wyjścia

Chciałbym, aby Grunt wyświetlał jakiekolwiek dane wyjściowe z procesu.

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

Odpowiedz

33

Spróbuj ustawić go na opts: {stdio: 'inherit'}. W przeciwnym razie można rura wyjście:

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); 

Lub jeśli chcesz zmodyfikować dane wyjściowe:

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

'stdio:„inherit'' załatwia sprawę i dzięki za cynk znajdowaniu binarny węzła ! –

Powiązane problemy