本文介绍了Grunt衍生的过程不捕获输出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用Grunt生成了一个进程,但没有任何写入输出流的东西(例如 console.log )正在控制台中显示。

I have spawned a process using Grunt, but nothing that is written to the output stream (such as console.log) is being displayed in the console.

我希望Grunt显示流程中的任何输出。

I would like Grunt to display any output from the process.

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


推荐答案

尝试将其设置为 opts:{stdio:'inherit'} 。否则,您可以管输出:

Try setting it to opts: {stdio: 'inherit'}. Otherwise you can pipe the output:

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

或者如果您想修改输出:

Or if you want to modify the output:

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

这篇关于Grunt衍生的过程不捕获输出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-13 10:00