node.js - Grunt 产生的进程没有捕获输出

标签 node.js process gruntjs spawn

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

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

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

最佳答案

尝试将其设置为 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));
});

关于node.js - Grunt 产生的进程没有捕获输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15044307/

相关文章:

node.js - 通过 grunt 在实时服务器上运行 Protractor

gruntjs - 带有 grunt-contrib-watch、browserify 和 hbsfy( Handlebars )的 Gruntfile - 自动转换

pdf - 通过 grunt-contrib-connect 在浏览器中显示 PDF

javascript - 在同一运行中将console.log输出覆盖到新文件

node.js - 如何在 express.js 应用程序中的多个文件上使用套接字 io 实例

c# - 我无法使用 ProcessStartInfo.Arguments 检索流程参数

Perl - 如何在 Solaris 10 上解压 psinfo 二进制文件

javascript - Node.JS EventEmitter Listener 必须是一个函数

javascript - MongoDB map-reduce(通过nodejs): How to include complex modules (with dependencies) in scopeObj?

linux - 使用简单的 C 代码阻止用户锁定崩溃的 Linux 机器