chalkchalk:终端文本样式处理工具

0 阅读2分钟

chalk/chalk:终端文本样式处理工具

chalk 是一款用于 Node.js 环境的终端文本样式处理工具,目前在 GitHub 获得 23,183 个 Star。

正文顶部截图

chalk 可以为终端输出的文本添加颜色、背景色、样式等效果,帮助开发者在命令行工具中区分不同类型的输出信息。

chalk 支持多种文本样式,包括颜色、背景色、加粗、斜体、下划线、删除线等。开发者可以通过链式调用的方式组合多种样式,实现丰富的终端输出效果。

README区域截图

chalk 的 API 设计简洁,使用方式直观。开发者只需要引入 chalk 模块,即可直接调用对应的样式方法。

示例代码:

import chalk from 'chalk';

console.log(chalk.blue('Hello world!'));
console.log(chalk.red.bgYellow.bold('Error occurred!'));
console.log(chalk.green.underline('Success message'));

chalk 支持 256 色和真彩色模式,可以根据终端环境自动适配。开发者不需要关心终端的兼容性问题,chalk 会自动降级到终端支持的颜色模式。

chalk 支持模板字符串语法,开发者可以在字符串中直接嵌入样式标签,实现更灵活的文本格式控制。

示例代码:

console.log(chalk`
CPU: {red %s}
RAM: {green %s}
DISK: {blue %s}
`, cpuUsage, ramUsage, diskUsage);

chalk 支持自定义样式,开发者可以通过 define 方法创建自定义的样式组合,方便在项目中复用。

示例代码:

const error = chalk.bold.red;
const warning = chalk.yellow.underline;
const success = chalk.green;

console.log(error('This is an error message'));
console.log(warning('This is a warning message'));
console.log(success('This is a success message'));

chalk 还支持嵌套样式,内层样式会覆盖外层的同名样式,实现复杂的文本效果。

示例代码:

console.log(chalk.red('Hello ', chalk.underline.bgBlue('world'), '!'));

chalk 提供了颜色检测功能,可以判断当前终端是否支持颜色输出。开发者可以根据检测结果决定是否启用样式输出,确保在不支持颜色的终端中也能正常显示文本。

chalk 的性能表现优秀,经过优化的代码可以快速处理大量的样式文本输出,不会对命令行工具的运行速度产生明显影响。

开源地址:github.com/chalk/chalk

安装使用

chalk 可以通过 npm 或 yarn 安装,支持 Node.js 14.16 及以上版本:

npm install chalk

在 ESM 模块中引入 chalk:

import chalk from 'chalk';

在 CommonJS 模块中引入 chalk:

const chalk = require('chalk');

chalk 提供了多种颜色和样式可供选择:

  • 前景色:black、red、green、yellow、blue、magenta、cyan、white、gray
  • 背景色:bgBlack、bgRed、bgGreen、bgYellow、bgBlue、bgMagenta、bgCyan、bgWhite
  • 样式:reset、bold、dim、italic、underline、inverse、hidden、strikethrough

chalk 还支持明亮版本的颜色:

  • 前景色:redBright、greenBright、yellowBright、blueBright、magentaBright、cyanBright、whiteBright
  • 背景色:bgRedBright、bgGreenBright、bgYellowBright、bgBlueBright、bgMagentaBright、bgCyanBright、bgWhiteBright