命令行终端-美化-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 地址: 传送门

相关推荐
柳杉几秒前
用 GPT-6 Astra 和 Tripo3D 做智慧农业 3D 大屏:从调研到可巡检园区全流程实录
前端·ai编程·数据可视化
特创数字科技5 分钟前
【uni-app x】告别系统相机限制!三端通用自定义相机组件:任意布局、静默拍照、录像、水印叠加、连拍回图一次搞定
前端·数码相机·uni-app
IT_陈寒20 分钟前
用Vue时这个响应式陷阱坑了我一整天
前端·人工智能·后端
风骏时光牛马28 分钟前
企业客户信息管理数据库
前端
paopaokaka_luck33 分钟前
个人综合管理小程序(echarts数据看板、健康数据记录与趋势查看、目标拆解和进度管理、日程待办与番茄钟、习惯打卡、收支统计、个人生活记录、跨模块智能提醒)
前端·javascript·spring·小程序·数据分析·echarts·生活
霸道流氓气质1 小时前
Graph Studio Web IDE 深度实战:可视化编排、断点调试与生产级运维全指南
运维·前端·ide
福兮说9 小时前
前端下载大文件,点了按钮半天没反应:fetch + blob 的三个问题和三种替代写法
前端·javascript·性能优化·文件下载
GreenTea9 小时前
我把 Agent 的 while 循环拆掉了:一种你可能没想到的 Agent 架构
前端·后端·架构
科技观察哨9 小时前
六足平台选型与纳米定位系统集成:HEB-640六自由度位移台在半导体光刻对准中的参数边界与国产替代评估
前端·人工智能