Grunt порождает процесс, не захватывающий результат

Я породил процесс с использованием Grunt, но ничего не записывается в выходной поток (например, console.log), отображается в консоли.

Я хотел бы, чтобы Grunt отобразил любой результат процесса.

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

Ответы

Ответ 1

Попробуйте установить его на opts: {stdio: 'inherit'}. В противном случае вы можете выполнить вывод:

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

Или если вы хотите изменить вывод:

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