命令行终端-美化-picocolors

我们在开发项目或者开发node cli 工具,希望我们的终端输出友好的日志提示,带有颜色,背景等等

今天推荐一个美化终端输出的js 库 picocolors


github 地址-picocolors

vite也在用哟~

特点

  • 无依赖
  • chalk 库 小14倍 , 快 2倍
  • PostCSS、SVGO、Stylelint 和 Browserslist 等流行工具都在使用
  • 支持 node 6+ 和浏览器, 支持 CJS 和ESM 项目
  • 自带TypeScript 类型声明。
  • NO_COLOR 友好。

安装

shell 复制代码
npm i picocolors

pnpm add picocolors

快速上手

js 复制代码
import pc from "picocolors"

console.log(
  pc.green(`How are ${pc.italic(`you`)} doing?`)
)

Picocolors 提供了一个对象,其中包括各种文本着色和格式设置功能

文字颜色

  • black
  • red
  • green
  • yellow
  • blue
  • magenta
  • cyan
  • white
  • gray
js 复制代码
console.log(`I see a ${pc.red("red door")} and I want it painted ${pc.black("black")}`)

背景颜色

  • bgBlack
  • bgRed
  • bgGreen
  • bgYellow
  • bgBlue
  • bgMagenta
  • bgCyan
  • bgWhite
js 复制代码
console.log(
  pc.bgBlack(
    pc.white(`Tom appeared on the sidewalk with a bucket of whitewash and a long-handled brush.`)
  )
)

其他

除了设置背景颜色和文字颜色,还可以设置其他效果

dim, bold, hidden, italic, underline, strikethrough, reset, inverse

实用的工具函数

  • isColorSupported 返回 boolean , 当前环境,是否支持使用 颜色编码和格式
js 复制代码
import pc from "picocolors"

if (pc.isColorSupported) {
  console.log("Yay! This script can use colors and formatters")
}
  • createColors(enabled) 返回具有手动定义颜色支持配置的新 API 对象的函数
js 复制代码
import pc from "picocolors"

let { red, bgWhite } = pc.createColors(options.enableColors)

使用 picocolors 替代 chalk

  1. 第一步, 替换导入的包
js 复制代码
- import chalk from 'chalk'
+ import pico from 'picocolors'
  1. 第二步,替换使用
js 复制代码
- chalk.red(text)
+ pico.red(text)
  1. 如果存在链式调用,则替换为 嵌套的写法
js 复制代码
- chalk.red.bold(text)
+ pico.red(pico.bold(text))
  1. 可以使用 colorize-template 来替换 chalk 的标记模板文字

这个一般使用的比较少

js 复制代码
+ import { createColorize } from 'colorize-template'

+ let colorize = createColorize(pico)
- chalk.red.bold`full {yellow ${"text"}}`
+ colorize`{red.bold full {yellow ${"text"}}}`

另外, chalk 地址: 传送门

相关推荐
少云清8 小时前
【功能测试】6_Web端抓包 _Fiddler抓包工具的应用
前端·功能测试·fiddler
豐儀麟阁贵8 小时前
8.5在方法中抛出异常
java·开发语言·前端·算法
zengyuhan5038 小时前
Windows BLE 开发指南(Rust windows-rs)
前端·rust
醉方休8 小时前
Webpack loader 的执行机制
前端·webpack·rust
前端老宋Running9 小时前
一次从“卡顿地狱”到“丝般顺滑”的 React 搜索优化实战
前端·react.js·掘金日报
隔壁的大叔9 小时前
如何自己构建一个Markdown增量渲染器
前端·javascript
用户4445543654269 小时前
Android的自定义View
前端
WILLF9 小时前
HTML iframe 标签
前端·javascript
枫,为落叶9 小时前
Axios使用教程(一)
前端
小章鱼学前端9 小时前
2025 年最新 Fabric.js 实战:一个完整可上线的图片选区标注组件(含全部源码).
前端·vue.js