const barStream = fs.createWriteStream('bar');
const foo = spawn('foo', [], { stdio: ['ignore', barStream, 'inherit'] });
抛出错误:
stdio stream的值不正确:WriteStream
在某些情况下,像foo.stdout.pipe(barStream)
这样的反向执行此操作很可能。
但为什么不能将WriteStream
作为stdout流提供呢?有没有办法让barStream
适合stdout?
答案 0 :(得分:4)
来自documentation for the stdio
option,强调我的:
<Stream>
object - 共享一个可读或可写的流,该流引用带有子进程的tty,文件,套接字或管道。流的底层文件描述符在子进程中复制到与stdio数组中的索引对应的fd。 请注意,流必须具有基础描述符(文件流不会发生'open'事件。)
所以:
const barStream = fs.createWriteStream('bar');
barStream.on('open', () => {
const foo = spawn('foo', [], { stdio: ['ignore', barStream, 'inherit'] });
⋮
});
我承认错误信息肯定会更有帮助。