如何读取 child_process.spawnSync stdout with stdio option 'inherit'


var childProcess = cp.spawnSync(command, args, {
    cwd: process.cwd(),
    env: process.env,
    stdio: 'inherit',
    encoding: 'utf-8'
});

childProcess.output always eq [null, null, null]

process.stdout.write hook 没有给我任何输出

如果不使用 'pipe'childProcess.output将不包含输出。

var cp = require('child_process');
var command = 'echo';
var args = ['hello', 'world'];
var childProcess = cp.spawnSync(command, args, {
    cwd: process.cwd(),
    env: process.env,
    stdio: 'pipe',
    encoding: 'utf-8'
});
console.log(childProcess.output); // [ null, 'hello worldn', '' ]

这在child.stdout和其他地方的文档中有所指出,但并非完全明确。(无论如何,如果您希望看到它得到改进,请针对 Node.js 存储库打开拉取请求。

使用它在进程内显示进度:

var cp = require('child_process');
var command = 'echo';
var args = ['hello', 'world'];
var childProcess = cp.spawnSync(command, args, {
    cwd: process.cwd(),
    env: process.env,
    stdio: [process.stdin, process.stdout, process.stderr],
    encoding: 'utf-8'
});

因此,您将字符串'pipe'替换为数组[process.stdin, process.stdout, process.stderr]

相关内容

  • 没有找到相关文章

最新更新