欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Node.js控制臺(tái)彩色輸出的方法與原理實(shí)例詳解

前言

成都創(chuàng)新互聯(lián)公司成立與2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元中衛(wèi)做網(wǎng)站,已為上家服務(wù),為中衛(wèi)各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220

我們都知道,在nodejs環(huán)境下使用普通的console.log,console.error,console.info輸出都是不會(huì)有顏色的,如果你不知道,那你現(xiàn)在知道啦😏。在這種情況下,如果我們需要彩色輸出,則通常通過(guò)chalk這個(gè)node模塊來(lái)實(shí)現(xiàn),

chalk使用方法

基本用法

const chalk = require('chalk')
console.log(chalk.red.bold.bgWhite('Leo\'s Blog'))

上面代碼執(zhí)行的結(jié)果如下,Leo's Blog 加粗,字體顏色是紅色,背景顏色是白色。

注意:背景顏色要在 bg 后面加上具體的顏色,顏色的第一個(gè)字母大寫(xiě)。

在 HTML 中支持 RGB 顏色,在這里同樣支持,而且是支持所有 HTML 中支持的顏色,如十六進(jìn)制顏色。這里僅僅說(shuō)明十六進(jìn)制顏色。

下面的代碼會(huì)和上面的代碼實(shí)現(xiàn)相同的效果。

const chalk = require('chalk')
console.log(chalk.rgb(255,0,0).bold.bgRgb(255,255,255)('Leo\'s Blog'))

使用模板

該模塊有一個(gè)很方便的用法就是支持模板輸出,也就是說(shuō),不管在字符串中的哪個(gè)位置想改變輸出的顏色,都是可以的。

const chalk = require('chalk')
console.log(chalk`{red.bold.bgWhite Leo\'s Blog}`)

當(dāng)然,也可以使用 RGB 顏色值。

const chalk = require('chalk')
console.log(chalk`{rgb(255,0,0).bold.bgRgb(255,255,255) Leo\'s Blog}`)

Node.js控制臺(tái)彩色輸出的方法與原理實(shí)例詳解
四種方式的輸出

常見(jiàn)形式

我們經(jīng)常看到的警告、錯(cuò)誤提示就是這么來(lái)的

const chalk = require('chalk')

const error = chalk.bold.red;
const warning = chalk.keyword('orange')

console.log(error('Error!'))
console.log(warning('Warning!'))

Node.js控制臺(tái)彩色輸出的方法與原理實(shí)例詳解
錯(cuò)誤和警告提示

常用API

樣式

  • reset - 樣式重置
  • bold - 加粗
  • dim - 淺高亮
  • italic - 斜體
  • underline - 下劃線
  • inverse- 反轉(zhuǎn)前景和背景色
  • hidden - 隱藏內(nèi)容
  • strikethrough - 刪除線
  • visible- 顯示chalk level > 0 的內(nèi)容

前景色關(guān)鍵字(非全支持)

  • black
  • red
  • green
  • yellow
  • blue
  • magenta
  • cyan
  • white
  • blackBright (alias: gray, grey)
  • redBright
  • greenBright
  • yellowBright
  • blueBright
  • magentaBright
  • cyanBright
  • whiteBright

背景色關(guān)鍵字(非全支持)

  • bgBlack
  • bgRed
  • bgGreen
  • bgYellow
  • bgBlue
  • bgMagenta
  • bgCyan
  • bgWhite
  • bgBlackBright (alias: bgGray, bgGrey)
  • bgRedBright
  • bgGreenBright
  • bgYellowBright
  • bgBlueBright
  • bgMagentaBright
  • bgCyanBright
  • bgWhiteBright

更多API可以看看官方文檔。

chalk讓控制臺(tái)輸出樣式多變的原理

其原理最重要的一個(gè)知識(shí)點(diǎn)就是ANSI Escape code.

ASCII編碼中有些字符是不能用來(lái)在終端中打印顯示的,比如'\a' 0x7代表響鈴,'\n' 0x0A代表?yè)Q行,這些字符被稱為控制符。

而其中的一個(gè)控制符 '\e' 0x1B比較特殊,這個(gè)字符代表 ESC ,即鍵盤(pán)上 ESC 按鍵的作用。ESC 是單詞 escape 的縮寫(xiě),即逃逸的意思。文本中出現(xiàn)這個(gè)控制符,表示接下來(lái)的字符是ANSI Escape code編碼。

而ANSI Escape code編碼中有專門(mén)控制字符顏色的控制符,例如:\e[31;44;4;1m

其意義如下:

  • \e 代表開(kāi)始ANSI Escape code
  • [ 代表轉(zhuǎn)義序列開(kāi)始符 CSI,Control Sequence Introducer
  • 31;44;4;1 代表以; 分隔的文本樣式控制符,其中 31 代表文本前景色為紅色,44代表背景為藍(lán)色,4代表下劃線,1代表加粗
  • m 代表結(jié)束控制符序列

我們可以在終端中輸入如下命令:

echo -e "\e[37;44;4;1mLEO\e[0m"

會(huì)有如下輸出,帶下劃線的LEO字樣:

Node.js控制臺(tái)彩色輸出的方法與原理實(shí)例詳解
echo-leo

因?yàn)?\e 控制符的16進(jìn)制碼為 0x1B , 8 進(jìn)制碼為 033 ,也可以用以下寫(xiě)法達(dá)到同樣效果:

echo -e "\e[37;44;4;1mLEO\e[0m"
echo -e "\x1b[37;44;4;1mLEO\x1b[0m"
echo -e "\x1B[37;44;4;1mLEO\x1B[0m"
echo -e "\033[37;44;4;1mLEO\033[0m"

Node.js控制臺(tái)彩色輸出的方法與原理實(shí)例詳解
echo

通過(guò)維基百科,我查到有以下參數(shù)控制符:

代碼作用備注
0重置/正常關(guān)閉所有屬性。
1粗體或增加強(qiáng)度
2弱化(降低強(qiáng)度)未廣泛支持。
3斜體未廣泛支持。有時(shí)視為反相顯示。
4下劃線
5緩慢閃爍低于每分鐘150次。
6快速閃爍MS-DOS ANSI.SYS;每分鐘150以上;未廣泛支持。
7反顯前景色與背景色交換。
8隱藏未廣泛支持。
9劃除字符清晰,但標(biāo)記為刪除。未廣泛支持。
10主要(默認(rèn))字體
11–19替代字體選擇替代字體{\displaystyle n-10}{\displaystyle n-10}。
20尖角體幾乎無(wú)支持。
21關(guān)閉粗體或雙下劃線關(guān)閉粗體未廣泛支持;雙下劃線幾乎無(wú)支持。
22正常顏色或強(qiáng)度不強(qiáng)不弱。
23非斜體、非尖角體
24關(guān)閉下劃線去掉單雙下劃線。
25關(guān)閉閃爍
27關(guān)閉反顯
28關(guān)閉隱藏
29關(guān)閉劃除
30–37設(shè)置前景色參見(jiàn)下面的顏色表。
38設(shè)置前景色下一個(gè)參數(shù)是5;n或2;r;g;b,見(jiàn)下。
39默認(rèn)前景色由具體實(shí)現(xiàn)定義(按照標(biāo)準(zhǔn))。
40–47設(shè)置背景色參見(jiàn)下面的顏色表。
48設(shè)置背景色下一個(gè)參數(shù)是5;n或2;r;g;b,見(jiàn)下。
49默認(rèn)背景色由具體實(shí)現(xiàn)定義(按照標(biāo)準(zhǔn))。
51Framed
52Encircled
53上劃線
54Not framed or encircled
55關(guān)閉上劃線
60表意文字下劃線或右邊線幾乎無(wú)支持。
61表意文字雙下劃線或雙右邊線
62表意文字上劃線或左邊線
63表意文字雙上劃線或雙左邊線
64表意文字著重標(biāo)志
65表意文字屬性關(guān)閉重置60–64的所有效果。
90–97設(shè)置明亮的前景色aixterm(非標(biāo)準(zhǔn))。
100–107設(shè)置明亮的背景色aixterm(非標(biāo)準(zhǔn))。

顏色編碼表如下:

名稱前景色代碼背景色代碼
3040
3141
3242
3343
藍(lán)3444
品紅3545
3646
3747
亮黑(灰)90100
亮紅91101
亮綠92102
亮黃93103
亮藍(lán)94104
亮品紅95105
亮青96106
亮白97107

示例:

\e[31m 紅色
\e[36;5;1;4m 緩慢閃爍的青色加粗帶下劃線字體

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)創(chuàng)新互聯(lián)的支持。

當(dāng)前標(biāo)題:Node.js控制臺(tái)彩色輸出的方法與原理實(shí)例詳解
標(biāo)題路徑:http://www.chinadenli.net/article10/gciggo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開(kāi)發(fā)域名注冊(cè)手機(jī)網(wǎng)站建設(shè)微信公眾號(hào)網(wǎng)站排名營(yíng)銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司