nodejs交互工具庫 -- chalk-pipe和chalk

chalk-pipe

使用更簡單的樣式字符串建立粉筆樣式方案
imagegit

Install

yarn add chalk-pipe

Usage

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!'));

image

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);

API

chalkPipe(styles)(text)

chalkPipe('blue.underline')('Link!');

chalkPipe(styles, chalk)(text)

const chalk = require('chalk');

chalk.enable = true;

chalkPipe('underline', chalk.blue)('Link!');

Valid styles

參考

基本經常使用的方法場景就這些了,更完整的用法能夠直接查閱文檔測試

chalk-pipeui

若是須要更加細緻的需求,就要使用下面的chalk了,畢竟這只是它簡化版的庫spa

chalk

image

正確處理終端字符串樣式

image

亮點

  • 富有表現力的API
  • 高性能
  • 嵌套樣式的能力
  • 256 /真彩顏色支持
  • 自動偵測顏色支持
  • 不延長String.prototype
  • 清潔和集中
  • 積極維護
  • 截至2020年1月1日,被約5萬個軟件包使用

Install

yarn add chalk

Usage

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!'));

image

API

chalk.<style>[.<style>...](string, [string...])

Example: chalk.red.bold.underline('Hello', 'world');code

鏈樣式,並將最後一個做爲帶有字符串參數的方法調用。順序不重要,之後的樣式在發生衝突的狀況下會有先例. 這僅僅意味着chalk.red.yellow.green等價於 chalk.green.orm

多個參數將用空格分隔。

chalk.level

指定顏色支持的級別。

顏色支持是自動檢測到的,可是您能夠經過設置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)

chalk.supportsColor

檢測終端是否支持顏色。內部使用,爲您處理,但爲了方便暴露。

能夠由用戶使用標誌--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 and chalk.stderr.supportsColor

chalk.stderr包含一個單獨的實例,該實例配置了針對 stderr流而不是stdout檢測到的顏色支持.重寫規則chalk.supportsColor也適用於此,chalk.stderr.supportsColor爲了方便暴露

Styles

Modifiers

  • reset - 重置當前顏色鏈。
  • bold - 加粗文本。
  • dim - 只發出少許的光。
  • italic - 使文本斜體。(不是普遍支持)
  • underline - 使文本下劃線。(不是普遍支持)
  • inverse- 背景色和前景色反轉。
  • hidden - 打印文本,但使其不可見。
  • strikethrough - 在文本中心放置一條水平線。(不是普遍支持)
  • visible- 僅當粉筆的顏色級別爲>時打印文本。對於純粹修飾的東西頗有用。

Colors

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

Background colors

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

Tagged template literal

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()方法轉換爲字符串,內插值字符串中的全部花括號({和})都要轉義。

Browser support

從Chrome 69開始,ANSI轉義碼就在開發者控制檯獲得了本地支持。

Windows

若是你使用的是Windows,幫你本身一個忙,使用Windows終端而不是cmd.exe。

參考

基本經常使用的方法場景就這些了,更完整的用法能夠直接查閱文檔

chalk

supports-color

檢測終端是否支持顏色

Install

yarn add supports-color

Usage

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)');
}

API

返回一個帶有stdoutstderr屬性的對象,用於測試這兩個流。每一個屬性都是一個對象,若是不支持顏色,則爲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)

參考

基本經常使用的方法場景就這些了,更完整的用法能夠直接查閱文檔

supports-color

相關文章
相關標籤/搜索