想要node构建时有颜色?

来源:互联网 发布:网络管理工具 编辑:程序博客网 时间:2024/05/03 11:02

楼主在做构建工具时,发现console.log出来的很不好看

我的构建工具开发提示

不BB,先上code,以下所有例子均在node命令行下执行

命令行

console.log('\x1b[33m%s\x1b[39m','本次版本更新时间为 19:41:52') // 请在node命令行中输出

解释:

\x1b 为使用ascii(十六进制)中的27位,即ESC==>Escape序列屏幕控制码(用于telnet等,白话就是控制台文字的样式控制)

[val1;val2;val3…m 其中val为ESC的参数,[ 为标识符让ESC执行后续的val参数,可以只有一个到多个参数,代表控制码值(文字的样式值)

一般成对出现ESCAPE控制码(同canvas中的画布style设置)
例:

console.log('\x1b[33m更新时间\x1b[39m')     //输出黄色的"更新时间"字符串console.log('更新时间')                     //输出正常样式的"更新时间"字符串// 如果不成对出现console.log('\x1b[33m更新时间')             //输出黄色的"更新时间"字符串console.log('更新时间')                     //输出黄色的"更新时间"字符串

val的取值
字背景颜色范围:40—-49 例子
40:黑
41:深红
42:绿
43:黄色
44:蓝色
45:紫色
46:深绿
47:白色
48:自定义背景色颜色 // 后续有解释
49:无颜色,一般用于格式化(防止后面的输出受到影响),如上述例子

字颜色:30———–39 ps: 如果取值39即为无颜色,一般用于格式化(防止后面的输出受到影响),如上述例子
30:黑
31:红
32:绿
33:黄
34:蓝色
35:紫色
36:深绿
37:白色
38: 自定义颜色 // 后续有解释
39:无颜色,一般用于格式化(防止后面的输出受到影响),如上述例子

其他控制码说明:
0 关闭所有属性
1 设置高亮度
4 下划线
5 闪烁
7 反显
8 消隐
nA 光标上移n行
nB 光标下移n行
nC 光标右移n行
nD 光标左移n行
y;xH设置光标位置
2J 清屏
K 清除从光标到行尾的内容
s 保存光标位置
u 恢复光标位置
?25l 隐藏光标
?25h 显示光标

特别说明: 如果想要自定义颜色输出的话需要使用 控制码38

格式为 \x1b[38;2;r;g;bm 或 \x1b[38;5;rgbm

例:

//输出为 rgb(33,66,99) 蓝色的更新时间字符串   console.log('\x1b[38;5;33;66;99m%s\x1b[39m','更新时间')

links:
1. https://en.wikipedia.org/wiki/ANSI_escape_code
2. http://lishicongli.blog.163.com/blog/static/14682590201132151848668/
3. http://etian4ever.blog.163.com/blog/static/27355765200962210398981/

1 0
原创粉丝点击