nodejs 打印五彩斑斓的"黑"

4,540 阅读3分钟

前言

笔者上一篇博客 《如何在命令行中显示五彩斑斓的“黑”》,讲到了任何编程都可以在命令行终端打印彩色字体和彩色背景的文字,以及一些简单文本格式(粗体,下划线,闪烁,反转背景色,隐藏),并给出了 python 语言的实现。为了让前端开发的同学也能快速使用这一功能,在自己的项目中输出漂亮的日志,笔者用 js 重写了一遍,并发布到 github 和 npm 。读者可以到 github 查看源码,项目地址:github.com/kenblikylee…,也可以直接 npm 安装使用。

关于实现原理,可以参考 《如何在命令行中显示五彩斑斓的“黑”》 。下面将直接介绍 colorconsole 的使用。

1. 安装

本来是直接使用 colorconsole 作为包名的,但是在 publish 时,提示与已有库名称相似。对!是相似,不是重名,但实际搜索包 colorconsole 并没有找到相关的包。无奈,官方说不能用就不能用,因此,只能加上一个 scope 前缀 @kenworks

npm install --save-dev @kenworks/colorconsole

2. 使用

亲测,浏览器环境的控制台不支持ANSI转义序列,因此只能在 nodejs 环境使用。

var colorconsole = require('@kenworks/colorconsole')

colorconsole 提供三个函数:

colorconsole.log(text, color, bgcolor, effect)

在命令行终端打印彩色文本。

  • text: 要打印的文本
  • color: 文本字体颜色,颜色字符串或 0~255 整数
  • bgcolor: 文本背景颜色,颜色字符串或 0~255 整数
  • effect: 文本“特效”,仅支持 5 种,'bold'(粗体), 'underline' (下划线)), 'blink' (闪烁), 'reverse' (背景色反转), 'hide' (隐藏)

使用字符串指定颜色仅支持 8 种:

字符串 颜色
'black'
'red'
'green' 绿
'yellow'
'blue'
'magenta' 品红
'cyan'
'white'

colorconsole.text(text, color, bgcolor, effect)

返回带 ANSI转义序列 的字符串,再使用 console.log 打印该字符串,即可看到彩色的日志输出。事实上 colorconsole.log() 就是这样做的,它们的参数定义也是完全一样的,因此可直接参考 colorconsole.log() 的参数使用。

colorconsole.plate()

在命令行终端显示 256 种颜色和颜色对应的数值,相当于一个调色板功能。这 256 个颜色数值对应 colorconsole.log()colorconsole.text() 整数颜色取值,因此,可以把 colorconsole.plate() 看作是一个调色板,通过它来指定喜欢的颜色。

示例1 :colorconsole.log() 与 colorconsole.text

复制下面的代码到文件 test.js:

var colorconsole = require('@kenworks/colorconsole')

colorconsole.log('hello world!', 'red', null, 'bold')

colorconsole.log('hello world!', 'green', null, 'underline')

colorconsole.log('hello world!', 'blue', null, 'blink')

colorconsole.log('hello world!', 'magenta', null, 'hide')

colorconsole.log('hello world!', 'yellow', null, 'reverse')

colorconsole.log('hello world!', 'magenta', 'cyan')

colorconsole.log('hello world!', 228, null, 'blink')

colorconsole.log('hello world!', 9, 228, 'blink')

colorconsole.log('hello world!', null, null, 'reverse')

colorconsole.log('hello world!', 300, 600)

colorconsole.log('hello world!', 100)

colorconsole.log('hello world!', null, 100)

colorconsole.log('hello world!', 200, 300, 'blink', 'I\'m %s!', 'ken')

console.log(colorconsole.text('hello world!', 100, null, 'bold'), 'I\'m ken!')

终端运行:

node test.js

示例2 :colorconsole.plate() 显示调色板

var colorconsole = require('@kenworks/colorconsole')

colorconsole.plate()

Thanks

如果本文对你有帮助,请不要吝惜点赞哦 👍

源码地址:github.com/kenblikylee…


阅读原文


微信扫描二维码 获取最新技术原创