控制臺(tái)文本樣式庫(kù)Chalk.js安裝及使用實(shí)例
介紹

Chalk 是一個(gè)流行的 Node.js 庫(kù),用于為終端文本輸出添加顏色和樣式,提升命令行應(yīng)用的可讀性和用戶體驗(yàn)。它通過簡(jiǎn)單的 API 封裝了復(fù)雜的 ANSI 轉(zhuǎn)義碼,使開發(fā)者無需記憶晦澀代碼即可實(shí)現(xiàn)彩色輸出。
比如下面是一組標(biāo)識(shí)顏色的ANSI 轉(zhuǎn)義碼字符,可以在控制臺(tái)中為文本的輸出著色:
console.log('\x1b[33m%s\x1b[0m', 'Hello,I am Rady!');
通過chalk封裝的函數(shù),我們就不用自己編寫復(fù)雜的轉(zhuǎn)義序列字符,輕松在命令行終端輸出各種樣式的字體。
安裝
npm install chalk npm i chalk --save-dev #pnpm add -D chalk pnpm add --save-dev chalk
使用教程
引入chalk.js
import chalk from 'chalk';
// 或者
const chalk = require("chalk"); // 從 Chalk 5.0 版本開始,不再支持 CommonJS 的 require 方式引入API用法
• 字體顏色: chalk.red, chalk.green, chalk.blue 等。
• 背景顏色:在顏色名前加上 bg,如 chalk.bgRed 。
• 鏈?zhǔn)秸{(diào)用:可以將多個(gè)樣式方法鏈接在一起,如 chalk.blue.bold.underline 。
• 多參數(shù)輸出: console.log(chalk.blue(‘Hello’), ‘World!’, ‘Foo’, ‘bar’, ‘biz’, ‘baz’); 。
• 嵌套樣式:可以在一個(gè)字符串中嵌套不同的樣式,如 chalk.red(‘Hello’, chalk.underline.bgBlue(‘world’) + ‘!’) 。
注意事項(xiàng)
• 從 Chalk 5.0 版本開始,不再支持 CommonJS 的 require 方式引入,而是只支持 ES Modules 的 import 方式。如果需要在 Node.js 中使用,可以考慮使用 Chalk 4.x 版本。
• 某些樣式可能在所有終端中并不都有效,如 underline 和 bold 在 Git Bash 上可能不被支 持。
• 若要在項(xiàng)目中使用 Chalk.js ,需要確保終端支持 ANSI 顏色編碼。大多數(shù)現(xiàn)代終端都支持。
示例
示例1
// simple.js
import chalk from 'chalk';
console.log(chalk.blue("藍(lán)色字體"));
const name = 'Sindre';
console.log(chalk.green('Hello %s'), name);
const error = chalk.bold.red;
const warning = chalk.hex('#FFA500'); // Orange color
console.log(error('Error!'));
console.log(warning('Warning!'));
console.log(chalk.blue('an old falcon'));
//console.log(chalk.keyword('steelblue')('an old falcon'));
//console.log(chalk.keyword('khaki').bold('an old falcon'));
//鏈?zhǔn)秸{(diào)用
console.log(chalk.red.bgYellow.bold('Error!'));運(yùn)行node simple.js,效果如下:

示例2
// simple.js
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!'));
相關(guān)鏈接
https://www.npmjs.com/package/chalk
https://github.com/chalk/chalk
到此這篇關(guān)于控制臺(tái)文本樣式庫(kù)Chalk.js安裝及使用的文章就介紹到這了,更多相關(guān)控制臺(tái)文本樣式庫(kù)Chalk.js內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺析Node.js實(shí)現(xiàn)HTTP文件下載
本文介紹如何用Node.js來實(shí)現(xiàn)HTTP文件下載,文章以實(shí)例演示所以很詳細(xì),有需要的小伙伴們可以參考學(xué)習(xí)。2016-08-08
詳解如何在NodeJS應(yīng)用程序中處理多個(gè)API請(qǐng)求
NodeJS默認(rèn)是異步的,這意味著它已經(jīng)能夠同時(shí)處理多個(gè)請(qǐng)求,但它只適用于I/O操作,如HTTP請(qǐng)求、文件系統(tǒng)操作、數(shù)據(jù)庫(kù)查詢、實(shí)時(shí)聊天應(yīng)用等,在處理CPU密集型任務(wù)時(shí),可能需要很長(zhǎng)時(shí)間,這就是為什么NodeJS提供了一些我們將在下面介紹的特定包2023-12-12
基于Node.js實(shí)現(xiàn)圖像與文件的上傳下載功能
在Web應(yīng)用中,文件與圖片上傳下載幾乎是必備功能,從用戶頭像、附件上傳,到后臺(tái)報(bào)表導(dǎo)出、圖片資源分發(fā),都離不開穩(wěn)定可靠的文件處理能力,Node.js天然適合I/O密集型任務(wù),在文件傳輸和流式處理方面具有明顯優(yōu)勢(shì),所以本文介紹了Node.js中文件與圖片的上傳與下載2025-12-12
使用Node.js搭建靜態(tài)資源服務(wù)詳細(xì)教程
這篇文章主要介紹了使用Node.js搭建靜態(tài)資源服務(wù)器,需要的朋友可以參考下2017-08-08
windows離線環(huán)境安裝node-sass全過程
文章介紹了如何在Windows系統(tǒng)上安裝和配置node-sass,并提供了一個(gè)詳細(xì)的步驟指南,首先,通過命令行查看支持版本;然后,下載對(duì)應(yīng)版本的node-sass安裝包;接著,在npm配置文件中增加SASS_BINARY_PATH路徑配置;最后,執(zhí)行npmi命令完成安裝2024-12-12
如何利用nodejs自動(dòng)定時(shí)發(fā)送郵件提醒(超實(shí)用)
這篇文章主要給大家介紹了關(guān)于如何利用nodejs實(shí)現(xiàn)自動(dòng)定時(shí)發(fā)送郵件提醒的相關(guān)資料,這個(gè)功能非常實(shí)用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
node.js?實(shí)現(xiàn)手機(jī)號(hào)驗(yàn)證碼登錄功能
這篇文章主要介紹了node.js?實(shí)現(xiàn)手機(jī)號(hào)驗(yàn)證碼登錄功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08
使用Node.js的readline模塊逐行讀取并解析大文件
在Node.js環(huán)境中處理大文件是一個(gè)常見的需求,尤其是在處理日志文件、數(shù)據(jù)庫(kù)導(dǎo)出、或任何形式的大規(guī)模文本數(shù)據(jù)時(shí),本文將深入探討如何使用Node.js的readline模塊來實(shí)現(xiàn)這一功能,并討論相關(guān)的性能優(yōu)化和注意事項(xiàng),需要的朋友可以參考下2024-09-09

