nodejs命令行,子进程我是用了colors打印,父进程如何得到。
子进程aaa.js
require("colors")
console.log("aaa".red)
父进程run.js
require('child_process').exec("node aaa",{ stdio: "inherit"},function (err,out) {
console.log(out)
})
如何能带颜色啊。
nodejs命令行,子进程我是用了colors打印,父进程如何得到。
aaa.js
require("colors")
console.log("aaa".red)
run.js
require('child_process').exec("node aaa",{ stdio: "inherit"},function (err,out) {
console.log(out)
})
如何能带颜色啊。
5 回答4.8k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
5 回答3.6k 阅读
2 回答1.7k 阅读✓ 已解决
5 回答1.9k 阅读
2 回答1.4k 阅读✓ 已解决
3 回答2k 阅读
你可以使用下面代码实现你需要的效果:
但是如果你需要细致的理解,首先要知道终端是怎么控制输出的颜色的。
转义序列(1)是终端用来控制颜色的特殊字符序列的,这部分的
由于是控制字符序列,所以他们是不可见的,
转义序列由
ESC
(2) 和[
开始,然后紧跟着parameter bytes,范围在0x30–0x3F,再后面是intermediate bytes,范围在0x20–0x2F,最后跟着final byte,范围在0x40–0x7E。看下面的代码就更能理解了:
其中,之所以经过父子进程通信之后,颜色就不显示了,是因为 colors 库中有个
supports-colors.js
逻辑来判断是否支持颜色,其中有一句:而使用
exec
方法执行命令,则子进程的 stdio 就与 tty(终端)失去了联系,也就是process.stdout.isTTY === 'undefined'
,只要保证 `process.stdout 对应为终端输出流即可注解