chalk依赖的基础用法

554 阅读2分钟

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('白底蓝字&字体加粗'))
    
  • 效果

    image.png

定义主题色

// 设置主题色
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('成功了哦'))

image.png

特殊的visible()

我们见过很多命令行中让输入密码时,密码是隐藏的,外部看不到,便可通过此方法实现。 当你通过这个方法log(chalk.visible('我是密码你看不到')) 去实现时会发现调用结果不生效。如下图:

image.png 那应该怎么实现呢?此时我们应该了解另一个概念色域。

色域Instance()

  • 默认色域是等级3,支持一千六百万颜色

image.png

  • chalk.level更改颜色打印的范围,参数接收是level:0/1/2/3 0 | 所有颜色无法使用 | | :-: | :------: | | 1 | 基础的16中颜色 | | 2 | 256中颜色 | | 3 | 一千六百万颜色

image.png

  • 实现密码的隐藏,即把色域等级设为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('上面的密码你没看到吧'))

结果

image.png