我有一个节点任务,它产生一个子进程并转发该进程'输出到stdout:
var child = require( 'child_process' ).spawn( 'some_cmd' );
child.stdout.on( 'data', process.stdout.write.bind( process.stdout ) );
这样可以正常工作,除非任何非ascii字符,特别是控制文本颜色的字符,都不会通过。所以我在child_process中的所有文本都是白色的。
有没有人知道如何解决这个问题?或者,是否有人知道如何直接显示child_process
输出而不桥接流?
答案 0 :(得分:0)
回答我自己的问题(虽然如果有人对如何真正阅读角色控制数据有答案,我仍然感兴趣):
使用child_process.spawn
调用stdio: 'inherit'
会将stdout和stderr传递给子进程,因此此问题就会消失。
require( 'child_process' ).spawn( 'cmd', { stdio: 'inherit' } );