欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何在Node和瀏覽器控制臺中打印彩色文字

 更新時間:2020年01月09日 15:26:57   作者:hn-failte  
這篇文章主要介紹了如何在Node和瀏覽器控制臺中打印彩色文字,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧

這篇文章中,我們主要研究的是如何在Node中打印出彩色文字,瀏覽器的只是附帶。

一、常用場景:

1、在Wepack的打包過程中,顯示打包完成后,控制臺輸出了幾行注目的彩色文字信息。

2、在cli工具中,提示的信息有時會附帶紅色或綠色的提示。

二、瀏覽器的彩色console

在瀏覽器中,要打印彩色的log很簡單,如下:

console.log('%c%s', 'color: red; font-size: 20px', 'red')
// %c代表樣式,%s代表字符串
// 樣式設(shè)置后,后面的字符串才能被渲染

那這樣子,我們是不是就可以直接挪到node上了呢?

急沖沖的挪過去一試驗,然而顯示的還是無情的白色文字。

那在Node上要怎么解決這個問題呢?

三、Shell的彩色console

1、c語言與輸出

在講Node的彩色打印前,我們先來溫習一波c語言吧。

在c語言中,\033是一個轉(zhuǎn)義字符,這里注意033表示的是8進制的數(shù)字,表示換碼。

當這個字符串輸出時,表示對屏幕的控制。使用時可在后接一個控制字符串。

2、控制字符串組合

所有的控制字符串組合如下:

\33[0m 關(guān)閉所有屬性
\33[1m 設(shè)置高亮度
\33[4m 下劃線
\33[5m 閃爍
\33[7m 反顯
\33[8m 消隱
\33[30~37m 這個區(qū)間都可以設(shè)置字體色
\33[40~47m 這個區(qū)間都可以設(shè)置背景色
\33[90~97m 這個區(qū)間都可以設(shè)置高亮的字體色
\33[100~107m 這個區(qū)間都可以設(shè)置高亮的背景色
\33[nA 光標上移n行
\33[nB 光標下移n行
\33[nC 光標右移n行
\33[nD 光標左移n行
\33[y;xH設(shè)置光標位置
\33[2J 清屏
\33[K 清除從光標到行尾的內(nèi)容
\33[s 保存光標位置
\33[u 恢復(fù)光標位置
\33[?25l 隱藏光標
\33[?25h 顯示光標

3、使用例子

例1:單字體顏色

#include <stdio.h>
int main(){
  char black[]="\033[30m black \033[0m";
  char red[]="\033[31m red \033[0m";
  char green[]="\033[32m green \033[0m";
  char yellow[]="\033[33m yellow \033[0m";
  char blue[]="\033[34m blue \033[0m";
  char popurse[]="\033[35m popurse \033[0m";
  char indigo[]="\033[36m indigo \033[0m";
  char white[]="\033[37m white \033[0m";
  printf("%s%s%s%s%s%s%s%s", black, red, green, yellow, blue, popurse, indigo, white);
  return 0;
}

例2:單背景顏色

#include <stdio.h>
int main(){
  char black[]="\033[40m black \033[0m";
  char red[]="\033[41m red \033[0m";
  char green[]="\033[42m green \033[0m";
  char yellow[]="\033[43m yellow \033[0m";
  char blue[]="\033[44m blue \033[0m";
  char popurse[]="\033[45m popurse \033[0m";
  char indigo[]="\033[46m indigo \033[0m";
  char white[]="\033[47m white \033[0m";
  printf("%s%s%s%s%s%s%s%s", black, darkred, green, yellow, blue, popurse, indigo, white);
  return 0;
}

例3:自由組合

#include <stdio.h>
int main(){
  char mix[]="\033[31;42m blue font red bg \033[0m";
  printf("%s", mix);
  return 0;
}

四、Node的彩色打印

Node的實現(xiàn),是基于c語言的,因此Node的彩色打印其實與c語言類似。

1、console.log的實現(xiàn)

Node中的console.log的底層是process.stdout,而process.stdout的底層又是基于Stream實現(xiàn)的,再進一步Stream的底層指向了.cc的c語言文件。到這里,大家也就明白了為什么使用c/c++的性能好了,但是,作為與系統(tǒng)最為接近的高級語言,c的強大和危險是并存的。

2、Node的打印

知道了console.log的實現(xiàn)基礎(chǔ),我們可以大膽的輸出以下代碼:

var black="\033[30m black \033[0m";
var red="\033[31m red \033[0m";
var green="\033[32m green \033[0m";
var yellow="\033[33m yellow \033[0m";
var blue="\033[34m blue \033[0m";
var popurse="\033[35m popurse \033[0m";
var indigo="\033[36m indigo \033[0m";
var white="\033[37m white \033[0m";
console.log(black, red, green, yellow, blue, popurse, white);

毫無意外,我們打印出了彩色的log。

同樣的,按照c語言的混搭,有:

var mix="\033[37;42m white \033[0m";
console.log(mix);

除了用console.log,我們也可以直接使用process.stdout.write()實現(xiàn):

var mix="\033[37;42m white \033[0m";
process.stdout.write(mix)

3、chalk的打印

我們知道要如何實現(xiàn)了,但是我們并記不住每個符號怎么辦?

這里已經(jīng)有造好的輪子了:chalk

安裝:npm i chalk

使用:console.log(chalk.red('red'))

是不是很眼熟?你猜的沒錯,chalk.red('red')最終獲得的就是 \033[31m red \033[0m 字符串。

好了,文章到此結(jié)束,希望對正在看的你有幫助~也希望大家多多支持腳本之家。

相關(guān)文章

  • Node.js 在本地生成日志文件的方法

    Node.js 在本地生成日志文件的方法

    這篇文章主要介紹了Node.js 在本地生成日志文件的方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • nvm安裝方法以及安裝后node不能使用解決

    nvm安裝方法以及安裝后node不能使用解決

    在我們的日常開發(fā)中經(jīng)常會遇到這種情況,手上有好幾個項目,每個項目的需求不同,進而不同項目必須依賴不同版的NodeJS運行環(huán)境,nvm應(yīng)運而生,這篇文章主要給大家介紹了關(guān)于nvm安裝方法以及安裝后node不能使用解決的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • 修改node.js默認的npm安裝目錄實例

    修改node.js默認的npm安裝目錄實例

    今天小編就為大家分享一篇修改node.js默認的npm安裝目錄實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Node中文件斷點續(xù)傳原理和方法總結(jié)

    Node中文件斷點續(xù)傳原理和方法總結(jié)

    在之前做過一個小項目,涉及到了文件上傳,在大文件上面使用了斷點續(xù)傳,降低了服務(wù)器方面的壓力,現(xiàn)在小編把Node中文件斷點續(xù)傳原理和方法總結(jié)分享給大家,感興趣的朋友一起看看吧
    2022-01-01
  • 詳解Express筆記之動態(tài)渲染HTML(新手入坑)

    詳解Express筆記之動態(tài)渲染HTML(新手入坑)

    這篇文章主要介紹了詳解Express筆記之動態(tài)渲染HTML(新手入坑),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • Node.js中用D3.js的方法示例

    Node.js中用D3.js的方法示例

    這篇文章主要給大家介紹了在Node.js中用D3.js的方法,文中分別介紹了如何安裝模塊和一小段簡單的示例代碼,有需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • 如何刪除node_modules重新安裝的方法步驟

    如何刪除node_modules重新安裝的方法步驟

    我們在開發(fā)項目的時候,每次安裝的 node 包會出現(xiàn)版本和項目所需要的版本不一致的問題,那么如何刪除node_modules重新安裝,本文就詳細的介紹一下
    2021-09-09
  • 詳解Node.js讀寫中文內(nèi)容文件操作

    詳解Node.js讀寫中文內(nèi)容文件操作

    在本篇文章中我們給大家分享了關(guān)于Node.js讀寫中文內(nèi)容文件操作的相關(guān)知識點內(nèi)容,有需要的朋友們可以學(xué)習下。
    2018-10-10
  • Koa2路由及koa腳手架使用入門詳解

    Koa2路由及koa腳手架使用入門詳解

    這篇文章主要為大家介紹了Koa2路由及koa腳手架的使用入門詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • 使用nodejs?+?koa?+?typescript?集成和自動重啟的問題

    使用nodejs?+?koa?+?typescript?集成和自動重啟的問題

    這篇文章主要介紹了nodejs?+?koa?+?typescript?集成和自動重啟,本文給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12

最新評論