I would like to use custom stream to handle child_process.spawn stdio.
For example
const cp = require('child_process');
const process = require('process');
const stream = require('stream');
var customStream = new stream.Stream();
customStream.on('data', function (chunk) {
console.log(chunk);
});
cp.spawn('ls', [], {
stdio: [null, customStream, process.stderr]
});
I get error Incorrect value for stdio stream
.
There is documentation for child_process.spawn https://nodejs.org/api/child_process.html#child_process_options_stdio. It says for stdio options that it can take Stream object
Stream object - Share a readable or writable stream that refers to a tty, file, socket, or a pipe with the child process.
I guess I'am missing this "refers to" part.
It seems to be a bug: https://github.com/nodejs/node-v0.x-archive/issues/4030 The
customStream
seems to be not ready when it's passed to spawn(). You can go around this issue easily: