5
2

Node.jsで待望(?)のコンソールの色を変えられるようになった

Last updated at Posted at 2024-03-31

Node.js 21.7.0のアップデートでText Stylingという項目がありました。

コンソールに表示させる 文字の色や装飾や背景色を変えられるようになります。

スクリーンショット 2024-03-31 19.12.55.png
https://github.com/nodejs/node/releases/tag/v21.7.0

const { styleText } = require('node:util');
const errorMessage = styleText('red', 'Error! Error!');
console.log(errorMessage);

こんな感じでコンソールの文字色が外部モジュール無しで変えられます。

スクリーンショット 2024-03-31 19.13.40.png
https://nodejs.org/api/util.html#utilstyletextformat-text

待ち望んでいた人も多いのでは......たぶん

元々チョークがあった

npmモジュールでチョーク(chalk)というパッケージがあり、これを使って色をつけることができました。

スクリーンショット 2024-03-31 19.15.36.png

今回のアップデートでチョークライクなことが外部パッケージを入れずに使えるようになったような印象です。

(チョークを元々ちゃんと使ったことがなかったのでもっと別の機能があるのかもしれないですが)

使える色

使える色はこちらにまとまってます。

例えばblueを指定するとこんな感じ。

スクリーンショット 2024-03-31 20.05.52.png

Foreground colors

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

blueBrightblueredBrightredはこんな感じ。

スクリーンショット 2024-03-31 20.10.34.png

絶妙。。

使える装飾

下線や取り消し線なども使えるとのことです。

以下が掲載されています。

  • reset - Resets all (color) modifiers to their defaults
  • bold - Make text bold
  • italic - Make text italic
  • underline - Make text underlined
  • strikethrough - Puts a horizontal line through the center of the text (Alias: strikeThrough, crossedout, crossedOut)
  • hidden - Prints the text, but makes it invisible (Alias: conceal)
  • dim - Decreased color intensity (Alias: faint)
  • overlined - Make text overlined
  • blink - Hides and shows the text in an interval
  • inverse - Swap foreground and background colors (Alias: swapcolors, swapColors)
  • doubleunderline - Make text double underlined (Alias: doubleUnderline)
  • framed - Draw a frame around the text

装飾も何個か試してみる

  • イタリック
const errorMessage = styleText('italic', 'Error! Error!');

スクリーンショット 2024-03-31 20.02.41.png

  • アンダーライン
const errorMessage = styleText('underline', 'Error! Error!');

スクリーンショット 2024-03-31 20.03.28.png

  • 取り消し戦
const errorMessage = styleText(`strikethrough`, 'Error! Error!',);

スクリーンショット 2024-03-31 20.02.20.png

背景色も使える

背景色も変えられます。
https://nodejs.org/api/util.html#background-colors

Background colors

Customizing util.inspect colorsの項目にある背景色は以下の模様です。

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

何個か指定してみる

  • 背景を緑に
const errorMessage = styleText(`bgGreen`, 'Error! Error!',);

スクリーンショット 2024-03-31 20.16.53.png

  • 背景をマゼンタに
const errorMessage = styleText(`bgMagentaBright`, 'Error! Error!',);

スクリーンショット 2024-03-31 20.18.01.png

まとめ

割と便利な気がします。
背景色の指定と装飾を同時にしたいってときにどう指定するのか今の所わかってないです。できるのかな。

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2