chalk/chalk:终端文本样式处理工具
chalk 是一款用于 Node.js 环境的终端文本样式处理工具,目前在 GitHub 获得 23,183 个 Star。
chalk 可以为终端输出的文本添加颜色、背景色、样式等效果,帮助开发者在命令行工具中区分不同类型的输出信息。
chalk 支持多种文本样式,包括颜色、背景色、加粗、斜体、下划线、删除线等。开发者可以通过链式调用的方式组合多种样式,实现丰富的终端输出效果。
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 的性能表现优秀,经过优化的代码可以快速处理大量的样式文本输出,不会对命令行工具的运行速度产生明显影响。
安装使用
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