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

相关推荐
触底反弹7 分钟前
💡 React 父子组件通信:一个进度条教会我的 5 件事
前端·react.js·面试
咩咩啃树皮8 分钟前
第44篇:Vue3侦听器完全精讲——watch与watchEffect区别、深度监听、异步业务落地
前端·javascript·vue.js
Python私教15 分钟前
前端转 AI 全栈:别只做聊天框,SSE 与审批流才是分水岭
前端·人工智能
漂移的电子19 分钟前
解决Vue3 + TypeScript + Vite搭建的项目,动态路由页面加载失败的最隐蔽原因
javascript·ubuntu·typescript
前鼻音太阳熊33 分钟前
【MES系统】- 工业HMI状态机可视化实践:从手写SVG到Cytoscape.js的技术选型与踩坑
开发语言·javascript·ecmascript
晓得迷路了1 小时前
栗子前端技术周刊第 139 期 - Nuxt 4.5、Vue 3.6 RC、Angular 发布节奏...
前端·javascript·vue.js
鱼樱前端1 小时前
AI 会不会取代前端?我看了 2026 年 7 月整个市场,给你一个不吓人的答案
前端·程序员·ai编程
এ慕ོ冬℘゜1 小时前
原生 select 下拉框搜索失效踩坑:文本搜索与 ID 匹配不对应问题排查
前端·javascript·html
程序员爱钓鱼2 小时前
Rust Result 详解:可靠的错误处理机制
前端·后端·rust
鱼樱前端2 小时前
别再"学工具"了,先搭你的 AI 工作流
前端·ai编程·前端工程化