使用更簡單的樣式字符串建立粉筆樣式方案
git
yarn add chalk-pipe
const chalkPipe = require('chalk-pipe'); console.log(chalkPipe('blue.bold')('Hello world!'));
使用點.
區分多種樣式:github
const chalkPipe = require('chalk-pipe'); const link = chalkPipe('blue.underline'); const error = chalkPipe('bgRed.#cccccc'); const warning = chalkPipe('orange.bold'); console.log(link('Link!')); console.log(error('Error!')); console.log(warning('Warning!'));
chalkPipe
is also chalk
:函數
const chalkPipe = require('chalk-pipe'); const blue = chalkPipe('blue'); const link = blue.underline; console.log(link('Link!'));
使用定製的chalk
性能
const chalk = require('chalk'); const chalkPipe = require('chalk-pipe'); const text = chalkPipe('underline', chalk.blue)('Link!'); console.log(text);
chalkPipe('blue.underline')('Link!');
const chalk = require('chalk'); chalk.enable = true; chalkPipe('underline', chalk.blue)('Link!');
基本經常使用的方法場景就這些了,更完整的用法能夠直接查閱文檔測試
若是須要更加細緻的需求,就要使用下面的chalk
了,畢竟這只是它簡化版的庫spa
正確處理終端字符串樣式
yarn add chalk
Chalk提供了一個易於使用的可組合API,您只需鏈嵌您想要的樣式。prototype
const chalk = require('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%')} `); // ES2015 tagged template literal log(chalk` CPU: {red 20%} RAM: {green 30%} DISK: {rgb(255,131,0) 40%} `); // Use RGB colors in terminal emulators that support it. log(chalk.keyword('orange')('Yay for orange colored text!')); log(chalk.rgb(123, 45, 67).underline('Underlined reddish color')); log(chalk.hex('#DEADED').bold('Bold gray!'));
<style>[.<style>...](string, [string...])
Example: chalk.red.bold.underline('Hello', 'world');
code
鏈樣式,並將最後一個做爲帶有字符串參數的方法調用。順序不重要,之後的樣式在發生衝突的狀況下會有先例. 這僅僅意味着chalk.red.yellow.green
等價於 chalk.green
.orm
多個參數將用空格分隔。
指定顏色支持的級別。
顏色支持是自動檢測到的,可是您能夠經過設置level屬性來覆蓋它。不過,您應該只在本身的代碼中這樣作,由於它將全局應用於全部chalk使用者。
若是您須要在可重用模塊中更改此內容,則建立一個新實例:
const ctx = new chalk.Instance({level: 0});
Level | Description |
---|---|
0 |
All colors disabled |
1 |
Basic color support (16 colors) |
2 |
256 color support |
3 |
Truecolor support (16 million colors) |
檢測終端是否支持顏色。內部使用,爲您處理,但爲了方便暴露。
能夠由用戶使用標誌--color
和--no-color
覆蓋。對於不可能使用--color
的狀況,使用環境變量 FORCE_COLOR=1
(級別1)、FORCE_COLOR=2
(級別2)或FORCE_COLOR=3
(級別3)強制啓用color,或FORCE_COLOR=0
強制禁用。使用FORCE_COLOR
會覆蓋全部其餘顏色支持檢查。
顯式256/Truecolor模式可分別使用--color=256
和--color=16m
標誌啓用。
chalk.stderr
包含一個單獨的實例,該實例配置了針對 stderr
流而不是stdout
檢測到的顏色支持.重寫規則chalk.supportsColor
也適用於此,chalk.stderr.supportsColor
爲了方便暴露
reset
- 重置當前顏色鏈。bold
- 加粗文本。dim
- 只發出少許的光。italic
- 使文本斜體。(不是普遍支持)underline
- 使文本下劃線。(不是普遍支持)inverse
- 背景色和前景色反轉。hidden
- 打印文本,但使其不可見。strikethrough
- 在文本中心放置一條水平線。(不是普遍支持)visible
- 僅當粉筆的顏色級別爲>時打印文本。對於純粹修飾的東西頗有用。black
red
green
yellow
blue
magenta
cyan
white
blackBright
(alias: gray
, grey
)redBright
greenBright
yellowBright
blueBright
magentaBright
cyanBright
whiteBright
bgBlack
bgRed
bgGreen
bgYellow
bgBlue
bgMagenta
bgCyan
bgWhite
bgBlackBright
(alias: bgGray
, bgGrey
)bgRedBright
bgGreenBright
bgYellowBright
bgBlueBright
bgMagentaBright
bgCyanBright
bgWhiteBright
Chalk能夠用做已標記的模板文字
const chalk = require('chalk'); const miles = 18; const calculateFeet = miles => miles * 5280; console.log(chalk` There are {bold 5280 feet} in a mile. In {bold ${miles} miles}, there are {green.bold ${calculateFeet(miles)} feet}. `);
塊由左花括號({)、樣式、一些內容和右花括號(})分隔。
模板樣式與普通Chalk樣式徹底相同。如下三句話是等價的:
console.log(chalk.bold.rgb(10, 100, 200)('Hello!')); console.log(chalk.bold.rgb(10, 100, 200)`Hello!`); console.log(chalk`{bold.rgb(10,100,200) Hello!}`);
注意函數樣式(rgb()
, hsl()
, keyword()
, 等等.)參數之間可能不包含空格
全部插入值(chalk`${foo}`) 經過 .toString()
方法轉換爲字符串,內插值字符串中的全部花括號({和})都要轉義。
從Chrome 69開始,ANSI轉義碼就在開發者控制檯獲得了本地支持。
若是你使用的是Windows,幫你本身一個忙,使用Windows終端而不是cmd.exe。
基本經常使用的方法場景就這些了,更完整的用法能夠直接查閱文檔
檢測終端是否支持顏色
yarn add supports-color
const supportsColor = require('supports-color'); if (supportsColor.stdout) { console.log('Terminal stdout supports color'); } if (supportsColor.stdout.has256) { console.log('Terminal stdout supports 256 colors'); } if (supportsColor.stderr.has16m) { console.log('Terminal stderr supports 16 million colors (truecolor)'); }
返回一個帶有stdout
和stderr
屬性的對象,用於測試這兩個流。每一個屬性都是一個對象,若是不支持顏色,則爲false。
stdout
/stderr
對象經過一個.level
屬性和一個對應的標誌來指定對顏色的支持程度:
.level = 1
and .hasBasic = true
: Basic color support (16 colors).level = 2
and .has256 = true
: 256 color support.level = 3
and .has16m = true
: Truecolor support (16 million colors)基本經常使用的方法場景就這些了,更完整的用法能夠直接查閱文檔