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';
}
}