Node.js 如何启动管道子进程以使process.stdout.columns仍然工作?
以下是输出:Node.js 如何启动管道子进程以使process.stdout.columns仍然工作?,node.js,Node.js,以下是输出: // test.js if (process.argv.indexOf('child') >= 0) { console.log('child columns:', process.stdout.columns) } else { console.log('parent columns:', process.stdout.columns) pipedExec('node', ['test.js', 'child'], function(outda
// test.js
if (process.argv.indexOf('child') >= 0) {
console.log('child columns:', process.stdout.columns)
}
else {
console.log('parent columns:', process.stdout.columns)
pipedExec('node', ['test.js', 'child'], function(outdata) {
console.log(' '+outdata.join('\n '))
})
}
function pipedExec (cmd, arg, callback) {
var
pipe = '',
spawn = require('child_process').spawn,
x = spawn(cmd, arg)
function d(outdata) { pipe += outdata.toString() }
x.stdout.on('data', d)
x.stderr.on('data', d)
x.on('close', function() { callback(pipe.split('\n')) })
return x
}
如何使此代码按预期工作,即让子级从process.stdout.columns
获取正确的值?我可以继承句柄,但管道将不起作用。或者我可以在程序args中传递列计数器,也可以通过文件传递(我现在这样做),但如果可能的话,我只想简单地设置管道的列宽
$ node test.js
parent columns: 104
child columns: undefined