我使用spawn来执行code-push,它向终端发送一个上传过程,并带有多个彩色的标准输出消息。
const codePushProcess = spawn('code-push', [
'release-react',
`rrs-${platform}`,
platform,
`--deploymentName=${deploymentName}`,
`--description=${desc}`,
`--targetBinaryVersion=${version}`,
'-m'
])
codePushProcess.stdout.on('data', chunk => {
console.log(chunk.toString('utf8'))
})
codePushProcess.stderr.on('data', data => {
console.error(`stderr: ${data}`)
})
codePushProcess.on('close', code => {
if (code === 0) {
console.log('CodePush Success!')
} else {
console.log(`CodePush process exited with code ${code}`)
}
})下面是一个比较:

当我使用console.log时,终端中的块都是白色的,没有原始格式,并且缺少动态进度。
那么如何将原始格式发送到终端呢?
发布于 2020-02-20 01:31:48
正如Felix所提到的,传递选项{ stdio: 'inherit' }作为spawn方法的第三个参数将向父进程发送stdio。
spawn(cmd, [], { stdio: 'inherit' })'inherit':将相应的stdio流传递给/从父进程。在前三个位置中,这分别等同于process.stdin、process.stdout和process.stderr。在任何其他位置,等于“忽略”.
https://stackoverflow.com/questions/60294965
复制相似问题