给CMD终端多一些色彩

最近在写Node.js服务器,想给终端一点颜色,能够有更好的个性化提示功能。

CMD终端配色规则

\x1b[ ${样式代码}m ${文本} \x1b[0m

这段代码是ANSI转义序列,用于在终端中设置文本样式和颜色。具体含义如下:

  1. \x1b[ - 表示ANSI转义序列的开始
  2. ${样式代码} - 动态插入的样式代码(如31表示红色,1表示加粗等)
  3. m - 表示样式设置的结束符
  4. ${文本} - 要应用样式的文本内容
  5. \x1b[0m - 重置所有样式,恢复终端默认设置

一、文本样式(1,3,4,7,9,53)

二、前景色(30-37 90-97)

三、背景色40-47 100-107)

四、组合配色

构造一个简单的颜色函数

js 复制代码
function color(文本, 样式代码=37){
    return `\x1b[${样式代码}m${文本}\x1b[0m`;
}

五、完整代码

js 复制代码
const str = `
标准前景色(30-37):
'black'         \x1B[30m黑色\x1B[0m (30)
'red'           \x1B[31m红色\x1B[0m (31)
'green'         \x1B[32m绿色\x1B[0m (32)
'yellow'        \x1B[33m黄色\x1B[0m (33)
'blue'          \x1B[34m蓝色\x1B[0m (34)
'magenta'       \x1B[35m紫色\x1B[0m (35)
'cyan'          \x1B[36m青色\x1B[0m (36)
'white'         \x1B[37m白色\x1B[0m (37)

亮色前景色(90-97):
'lightBlack/gray'    \x1B[90m亮黑/灰色\x1B[0m (90)
'lightRed'      \x1B[91m亮红\x1B[0m (91)
'lightGreen'    \x1B[92m亮绿\x1B[0m (92)
'lightYellow'   \x1B[93m亮黄\x1B[0m (93)
'lightBlue'     \x1B[94m亮蓝\x1B[0m (94)
'lightMagenta'  \x1B[95m亮紫\x1B[0m (95)
'lightCyan'     \x1B[96m亮青\x1B[0m (96)
'lightWhite'    \x1B[97m亮白\x1B[0m (97)

文本样式(1,3,4,7,9,53):
'bold'          \x1B[1m加粗\x1B[0m (1)
'italic'        \x1B[3m斜体\x1B[0m (3)
'underline'     \x1B[4m下划线\x1B[0m (4)
'inverse'       \x1B[7m反色\x1B[0m (7)
'strikethrough' \x1B[9m删除线\x1B[0m (9)
'overline'       \x1B[53m上划线\x1B[0m (53)



背景色(40-47):
'blackBG'       \x1B[40m黑色背景\x1B[0m (40)
'redBG'         \x1B[41m红色背景\x1B[0m (41)
'greenBG'       \x1B[42m绿色背景\x1B[0m (42)
'yellowBG'      \x1B[43m黄色背景\x1B[0m (43)
'blueBG'        \x1B[44m蓝色背景\x1B[0m (44)
'magentaBG'     \x1B[45m紫色背景\x1B[0m (45)
'cyanBG'        \x1B[46m青色背景\x1B[0m (46)
'whiteBG'       \x1B[47m白色背景\x1B[0m (47)

亮色背景(100-107):
'lightBlackBG/greyBG'  \x1B[100m亮黑/灰色背景\x1B[0m (100)
'lightRedBG'    \x1B[101m亮红背景\x1B[0m (101)
'lightGreenBG'  \x1B[102m亮绿背景\x1B[0m (102)
'lightYellowBG' \x1B[103m亮黄背景\x1B[0m (103)
'lightBlueBG'   \x1B[104m亮蓝背景\x1B[0m (104)
'lightMagentaBG'\x1B[105m亮紫背景\x1B[0m (105)
'lightCyanBG'   \x1B[106m亮青背景\x1B[0m (106)
'lightWhiteBG'  \x1B[107m亮白背景\x1B[0m (107)
`;

console.log(str)

function color(文本, 样式代码=37){
    return `\x1b[${样式代码}m${文本}\x1b[0m`;
}


console.log(  color('红色 加粗','31;1' )  )
console.log(  color('亮青色背景 亮黄色','93;106' )  )

六、参考文章和启发

2019年 《Node.js在控制台彩色输出的方法及原理》
juejin.cn/post/684490...

点评:文章引入了模块require('chalk') ,而我希望尽可能用原生的方式。关注到了53号样式为上划线,学会了样式的组合形式 样式;样式 的形式,快速了解到了样式 颜色规范,重排编号从小到大。使用豆包指挥重排格式。 注:要特别注意不同win系统版本显示有差异。

相关推荐
集成显卡13 小时前
图片压缩工具 | Electron应用配合 commander 提供命令行调用功能
前端·javascript·electron·人机交互·命令行·cmd
Q_Q51100828514 小时前
python+uniapp基于微信小程序健康管理系统
spring boot·python·微信小程序·django·flask·uni-app·node.js
dogstarhuang15 小时前
【快速入门到精通】MCP Typescript SDK核心概念和快速开发你的MCP
程序员·node.js·mcp
一周七喜h1 天前
使用nvm管理npm和pnpm
前端·npm·node.js
IT 前端 张1 天前
搭建Node.js服务器
运维·服务器·node.js
聆川1 天前
UpgradeLens - 前端项目依赖版本兼容性检测工具
前端·node.js
qq_411671981 天前
webpack 如何区分开发环境和生产环境
前端·webpack·node.js
Q_Q19632884752 天前
python大学校园旧物捐赠系统
开发语言·spring boot·python·django·flask·node.js·php
路灯下的光2 天前
一杯茶时间,听我再讲一次npm link原理!
前端·node.js
Code季风2 天前
虚拟机配置node.js(前端环境搭建)
前端·node.js