Эта статья была впервые опубликована в моем блогеМетод и принцип вывода цвета Node.js в консоль, добро пожаловать в гости😘
Все мы знаем, что в среде nodejs используйте обычныеconsole.log
,console.error
,console.info
На выходе не будет цвета, если вы не знаете, то теперь знаете 😏. В этом случае, если нам нужен цветной вывод, мы обычно передаемchalk
Этот модуль узла для достижения,
Как пользоваться мелом
Основное использование
const chalk = require('chalk')
console.log(chalk.red.bold.bgWhite('Leo\'s Blog'))
Результат выполнения приведенного выше кода выглядит следующим образом:Leo's Blog
Жирный, цвет шрифта красный, цвет фона белый.
Примечание. Цвет фона должен быть добавлен с определенным цветом после bg, а первая буква цвета должна быть заглавной.
Цвета RGB поддерживаются в HTML, и здесь тоже все цвета, поддерживаемые в HTML, например шестнадцатеричные цвета. Здесь описываются только шестнадцатеричные цвета.
Код ниже даст тот же эффект, что и код выше.
const chalk = require('chalk')
console.log(chalk.rgb(255,0,0).bold.bgRgb(255,255,255)('Leo\'s Blog'))
Используйте шаблоны
Очень удобным использованием этого модуля является поддержка шаблонного вывода, то есть независимо от того, где в строке вы хотите изменить цвет вывода, вы можете это сделать.
const chalk = require('chalk')
console.log(chalk`{red.bold.bgWhite Leo\'s Blog}`)
Конечно, можно использовать и цветовые значения RGB.
const chalk = require('chalk')
console.log(chalk`{rgb(255,0,0).bold.bgRgb(255,255,255) Leo\'s Blog}`)
общая форма
Вот как часто появляются предупреждения и сообщения об ошибках.
const chalk = require('chalk')
const error = chalk.bold.red;
const warning = chalk.keyword('orange')
console.log(error('Error!'))
console.log(warning('Warning!'))
Общий API
стиль
- reset - сброс стиля
- жирный - жирный
- тусклый - светлая подсветка
- курсив - курсив
- подчеркивать - подчеркивать
- inverse - инвертировать цвета переднего плана и фона
- hidden - скрыть содержимое
- зачеркнутый - зачеркнутый
- visible - показать уровень мела > 0 содержимого
Ключевое слово переднего плана (ненужная поддержка)
- 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
Можно увидеть больше APIофициальная документация.
Принцип мела, делающий стиль вывода консоли изменчивым
Одним из наиболее важных пунктов знания его принципа является то, чтоANSI Escape code
.
Некоторые символы в кодировке ASCII нельзя использовать для печати и отображения в терминале, например'\a' 0x7
представляет колокол,'\n' 0x0A
Представляя символы новой строки, эти символы называются управляющими символами.
и один из контрольных'\e' 0x1B
Более конкретно, этот символ представляет собой ESC, то есть функцию клавиши ESC на клавиатуре. ESC — это аббревиатура слова escape, что означает побег. Этот управляющий символ появляется в тексте, указывая на то, что следующий символANSI Escape code
кодирование.
а такжеANSI Escape code
В кодировке есть управляющие символы, которые специально управляют цветом символов, например:\e[31;44;4;1m
Его значение заключается в следующем:
-
\e
Представитель начинаетANSI Escape code
-
[
Представляет начальный символ escape-последовательности CSI, интродьюсер управляющей последовательности. -
31;44;4;1
Представляет элементы управления стилем текста, разделенные символом ;, где 31 означает, что цвет переднего плана текста красный, 44 означает, что фон синий, 4 означает подчеркивание, а 1 означает жирный шрифт. -
m
Представляет последовательность конечных управляющих символов
Мы можем ввести следующую команду в терминале:
echo -e "\e[37;44;4;1mLEO\e[0m"
Будет получен следующий вывод с подчеркнутым словом LEO:
потому что\e
Шестнадцатеричный код управляющего символа0x1B
, восьмеричный код033
, вы также можете использовать следующую запись для достижения того же эффекта:
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"
пройти черезВикипедияЯ нашел следующие параметры управления символами:
код | эффект | Примечание |
---|---|---|
0 | сброс/нормальный | Закройте все свойства. |
1 | Жирный или увеличить интенсивность | |
2 | ослабить (уменьшить силу) | Широко не поддерживается. |
3 | курсив | Широко не поддерживается. Иногда выглядит как перевернутый дисплей. |
4 | подчеркивать | |
5 | медленно мигает | Ниже 150 ударов в минуту. |
6 | быстро мигает | MS-DOS ANSI.SYS, 150+ в минуту, широко не поддерживается. |
7 | обратный дисплей | Цвета переднего плана и фона меняются местами. |
8 | Спрятать | Широко не поддерживается. |
9 | стереть | Символы ясны, но помечены для удаления. Широко не поддерживается. |
10 | Основной (по умолчанию) шрифт | |
11–19 | Альтернативные шрифты | Выберите альтернативный шрифт {\displaystyle n-10}{\displaystyle n-10}. |
20 | угловатое тело | Почти никакой поддержки. |
21 | Отключить жирный шрифт или двойное подчеркивание | Близкий полужирный шрифт широко не поддерживается, двойное подчеркивание почти не поддерживается. |
22 | Нормальный цвет или интенсивность | Ни сильный, ни слабый. |
23 | не курсивный, не выделенный | |
24 | Отключить подчеркивание | Удалите одиночные и двойные подчеркивания. |
25 | выключить мигание | |
27 | Выключить | |
28 | закрыть скрыть | |
29 | отключить стирание | |
30–37 | установить цвет переднего плана | См. таблицу цветов ниже. |
38 | установить цвет переднего плана | Следующий параметр — 5;n или 2;r;g;b, см. ниже. |
39 | Цвет переднего плана по умолчанию | Определяется реализацией (согласно стандарту). |
40–47 | установить цвет фона | См. таблицу цветов ниже. |
48 | установить цвет фона | Следующий параметр — 5;n или 2;r;g;b, см. ниже. |
49 | Цвет фона по умолчанию | Определяется реализацией (согласно стандарту). |
51 | Framed | |
52 | Encircled | |
53 | зачеркивать | |
54 | Not framed or encircled | |
55 | отключить обводку | |
60 | Идеографическое подчеркивание или правая линия | Почти никакой поддержки. |
61 | Идеографическое двойное подчеркивание или двойная правая черта | |
62 | Идеографическая линия над линией или левая линия | |
63 | Идеограммы с двойными надписями или двойными левыми линиями | |
64 | Знак идеографического акцента | |
65 | Идеографические свойства отключены | Сбрасывает все эффекты с 60 по 64. |
90–97 | Установите яркий цвет переднего плана | aixterm (нестандартный). |
100–107 | Установите яркий цвет фона | aixterm (нестандартный). |
Таблица цветового кодирования выглядит следующим образом:
имя | код цвета переднего плана | код цвета фона |
---|---|---|
чернить | 30 | 40 |
красный | 31 | 41 |
зеленый | 32 | 42 |
Желтый | 33 | 43 |
Синий | 34 | 44 |
пурпурный | 35 | 45 |
зеленый | 36 | 46 |
белый | 37 | 47 |
Яркий черный (серый) | 90 | 100 |
ярко-красный | 91 | 101 |
ярко зеленый | 92 | 102 |
ярко-желтый | 93 | 103 |
Ярко-голубой | 94 | 104 |
яркий пурпурный | 95 | 105 |
ярко-голубой | 96 | 106 |
белый | 97 | 107 |
Пример:
\e[31m 红色
\e[36;5;1;4m 缓慢闪烁的青色加粗带下划线字体