Why?
在命令行程序开发过程中,我们经常需要对输出的文字添加颜色。例如比较重要的错误信息可以设置为红色,警告信息可以设置为黄色,对于操作成功信可以设置成绿色。
How?
在文本终端控制颜色和格式可以使用ANSI转义码。在文本周围添加明显不同于输出的字符串,称为非打印字符串。举个例子:
console.log('\033[96m Hello World!\033[36m');
- \033:表示转义序列开始
- [:表示开始颜色设置
- 90:表示颜色色值
- m:表示颜色设置结束
ps:最后的 \033[36m是将颜色重新设置回去的
下图是比较常用的色值:
Usage
如果像上面这样去使用或许过于繁琐,可以将常用的色值封装成工具来调用。
const COLOR_MAP = {Black:'30',Red:'31',Green:'32',Yellow:'33',Blue:'34,Magenta:'35',Cyan:'36',White:'37',BrightBlack:'90',BrgihtRed:'91',BrightGreen:'92',BrightYellow:'93',BrightBlue:'94',BrightMagenta:'95',BrightCyan:'96',BrightWhite:'97'}export const function setColor(text,color='Cyan') {if(!text) {return '';}if(color) {return '\033['+COLOR_MAP[color]+'m'+text+'\033['+COLOR_MAP['Cyan']+'m\n';}}

