chalk
约 688 字大约 2 分钟
consolelogging
2024-05-04
概述
终端字符串样式设置正确。
Chalk 的体积更大,但这有其原因。
它提供了更友好的 API、完善的类型文档、支持数百万种颜色,并涵盖了小型替代方案无法处理的边界情况。 Chalk 成熟可靠,是为持久运行而构建的。
Chalk 被超过 12 万个 项目依赖,在你不知道如何选择时,使用它是不会错的。
安装
npm
npm install chalkpnpm
pnpm add chalkyarn
yarn add chalk使用
import chalk from 'chalk'
const log = console.log
// Combine styled and normal strings
log(`${chalk.blue('Hello')} World${chalk.red('!')}`)
// Compose multiple styles using the chainable API
log(chalk.blue.bgRed.bold('Hello world!'))
// Pass in multiple arguments
log(chalk.blue('Hello', 'World!', 'Foo', 'bar', 'biz', 'baz'))
// Nest styles
log(chalk.red('Hello', `${chalk.underline.bgBlue('world')}!`))
// Nest styles of the same type even (color, underline, background)
log(chalk.green(
`I am a green line ${
chalk.blue.underline.bold('with a blue substring')
} that becomes green again!`
))
// ES2015 template literal
log(`
CPU: ${chalk.red('90%')}
RAM: ${chalk.green('40%')}
DISK: ${chalk.yellow('70%')}
`)
// Use RGB colors in terminal emulators that support it.
log(chalk.rgb(123, 45, 67).underline('Underlined reddish color'))
log(chalk.hex('#DEADED').bold('Bold gray!'))
文本颜色
blackredgreenyellowbluemagentacyanwhiteblackBright(alias:gray,grey)redBrightgreenBrightyellowBrightblueBrightmagentaBrightcyanBrightwhiteBright
背景颜色
bgBlackbgRedbgGreenbgYellowbgBluebgMagentabgCyanbgWhitebgBlackBright(alias:bgGray,bgGrey)bgRedBrightbgGreenBrightbgYellowBrightbgBlueBrightbgMagentaBrightbgCyanBrightbgWhiteBright
文本修饰
reset- 重置当前样式。bold- 将文本设置为粗体。dim- 降低文本不透明度(变暗)。italic- 将文本设置为斜体。(支持不广泛)underline- 在文本下方添加水平线(下划线)。(支持不广泛)overline- 在文本上方添加水平线(上划线)。(支持不广泛)inverse- 反转背景色与前景色。hidden- 打印文本但使其不可见(隐藏)。strikethrough- 在文本中央添加水平线(删除线)。(支持不广泛)visible- 仅当Chalk颜色级别大于零时显示文本。适用于纯装饰性内容。
256色与彩色支持
Chalk在兼容的终端应用中支持256色及真彩色(1600万色)。
色彩会从1600万种RGB值向下采样为终端模拟器支持的ANSI色彩格式(或通过指定Chalk选项如{level: n}实现)。例如,当Chalk配置为运行在级别1(基础色彩支持)时,会将RGB值#FF0000(红色)下采样为31(ANSI红色转义码)。
使用示例:
chalk.hex('#DEADED').underline('你好,世界!')chalk.rgb(15, 100, 204).inverse('你好!')
背景色版本需添加bg前缀并首字母大写(例如前景色用hex,背景色则用bgHex)。
chalk.bgHex('#DEADED').underline('你好,世界!')chalk.bgRgb(15, 100, 204).inverse('你好!')
可用色彩模型包括:
