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 doesn't give me any output
If you don't use 'pipe'
then childProcess.output
will not contain the 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 world\n', '' ]
This is sorta kinda indicated in the documentation for child.stdout
and elsewhere, but it's not entirely unambiguous. (By all means, if you wish to see it improved, open a pull request against the Node.js repo.)
Use this for in-process displaying of progress:
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'
});
So you replace string 'pipe'
with the array [process.stdin, process.stdout, process.stderr]
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With