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]
。