跳转到内容

已知问题

输出被截断

这是 console.log() 的一个已知问题 (参见 nodejs/node#6379)。 这是由 console.log() 写入终端与写入文件时的不同行为引起的。 如果进程调用 process.exit(),缓冲的输出将被截断。 为防止这种情况,进程应使用 process.exitCode = 1 并等待进程自行退出。 或者使用类似 exit 包。

解决方法是写入临时文件

js
const tmp = await $`mktemp` // Creates a temp file.
const {stdout} = await $`cmd > ${tmp}; cat ${tmp}`

子进程中的颜色

您可能会看到用 await $ 调用的工具不显示颜色,与您在终端中看到的不同。 这是因为子进程不认为它是一个 TTY,子进程关闭了颜色。 通常有一种方法可以强制子进程添加颜色。

js
process.env.FORCE_COLOR='1'
await $`cmd`

免责声明:这不是 Google 官方支持的产品。