chalk
我们经常会在控制台或者cmd中看到五颜六色的字体,从而提高辨识率达到快速阅读有效信息的成效,这些东西都可以通过chalk这个库来定义。
特点
- 富有表现力
- 高性能
- 无依赖关系
- 能够嵌套样式,支持链式操作
- 256/真彩色支持
用法 - npm (npmjs.com)
-
代码
import chalk from 'chalk'; // 设置字体颜色 const log = console.log; log(chalk.white('设置字体颜色')) log(chalk.green('成功')) log(chalk.red('失败')) // 设置背景色 log(chalk.bgRed('红色背景')) // 设置白色背景蓝色字体(链式调用) log(chalk.bgWhite.blue('白底蓝字')) // 支持多个参数 log(chalk.yellow('参数1', '参数2', '参数3')); // 支持rgb格式 log(chalk.rgb(255,255,255)('rgb白色')) // 不支持rgba格式 // log(chalk.rgba(255,255,255,.5)('rgb半透明')) //报错TypeError: chalk.rgba is not a function // 支持16进制写法 log(chalk.hex('#fff000')('16进制黄色')) // 支持文本加粗 log(chalk.blue.bold.bgWhite('白底蓝字&字体加粗')) -
效果
定义主题色
// 设置主题色
const primary = chalk.hex('#6d78f7')
const warning = chalk.hex('#ff9900')
const success = chalk.hex('#11b760')
const error = chalk.red;
const info = chalk.hex('#d7e0ff')
log(info('info普通字体'))
log(error('报错了'))
log(warning('予以警告'))
log(success('成功了哦'))
特殊的visible()
我们见过很多命令行中让输入密码时,密码是隐藏的,外部看不到,便可通过此方法实现。 当你通过这个方法
log(chalk.visible('我是密码你看不到'))去实现时会发现调用结果不生效。如下图:
那应该怎么实现呢?此时我们应该了解另一个概念色域。
色域Instance()
- 默认色域是等级3,支持一千六百万颜色
- chalk.level更改颜色打印的范围,参数接收是level:0/1/2/3 0 | 所有颜色无法使用 | | :-: | :------: | | 1 | 基础的16中颜色 | | 2 | 256中颜色 | | 3 | 一千六百万颜色
- 实现密码的隐藏,即把色域等级设为0
chalk.level = 0;
console.log(chalk.level)
log(chalk.hex('#fff000')('下面一行是密码'))
log(chalk.visible('我是密码你看不到'))
chalk.level = 3;
console.log(chalk.level)
log(chalk.visible('上面的密码你没看到吧'))
结果