Как изменить цвет шрифта консоли node.js? - PullRequest
434 голосов
/ 20 марта 2012

Мне пришлось изменить цвет фона консоли на белый из-за проблем с глазами, но шрифт серого цвета, и это делает сообщения нечитаемыми. Как я могу это изменить?

Ответы [ 29 ]

780 голосов
/ 31 декабря 2016

Ниже вы можете найти цветовую ссылку текста на команду при запуске приложения node.js:

console.log('\x1b[36m%s\x1b[0m', 'I am cyan');  //cyan
console.log('\x1b[33m%s\x1b[0m', stringToMakeYellow);  //yellow

Примечание %s - это то место, где в строке (второй аргумент) вводится. \x1b[0m сбрасывает цвет терминала, поэтому он больше не является выбранным цветом после этой точки.

Справочник цветов

Reset = "\x1b[0m"
Bright = "\x1b[1m"
Dim = "\x1b[2m"
Underscore = "\x1b[4m"
Blink = "\x1b[5m"
Reverse = "\x1b[7m"
Hidden = "\x1b[8m"

FgBlack = "\x1b[30m"
FgRed = "\x1b[31m"
FgGreen = "\x1b[32m"
FgYellow = "\x1b[33m"
FgBlue = "\x1b[34m"
FgMagenta = "\x1b[35m"
FgCyan = "\x1b[36m"
FgWhite = "\x1b[37m"

BgBlack = "\x1b[40m"
BgRed = "\x1b[41m"
BgGreen = "\x1b[42m"
BgYellow = "\x1b[43m"
BgBlue = "\x1b[44m"
BgMagenta = "\x1b[45m"
BgCyan = "\x1b[46m"
BgWhite = "\x1b[47m"

EDIT:

Например, \x1b[31m - это escape-последовательность , которая будет перехвачена вашим терминалом и даст ему команду переключиться на красный цвет. Фактически, \x1b - это код для непечатного управляющего символа escape. Escape-последовательности, имеющие дело только с цветами и стилями, также известны как управляющий код ANSI и стандартизированы, поэтому они (должны) работать на любой платформе.

В Википедии есть хорошее сравнение того, как разные терминалы отображают цвета https://en.wikipedia.org/wiki/ANSI_escape_code#Colors

266 голосов
/ 12 ноября 2012

Для форматирования консольного текста в Node.js. доступно несколько пакетов.Наиболее популярными являются:

Использование:


CHALK:

const chalk = require('chalk');
console.log(chalk.red('Text in red'));

CLI-ЦВЕТ:

const clc = require('cli-color');
console.log(clc.red('Text in red'));

ЦВЕТА:

const colors = require('colors');
console.log('Text in red'.red);

Многие люди отмечали свое несогласие с colors изменением прототипа String .Если вы предпочитаете, чтобы ваши прототипы оставались в одиночестве, используйте следующий код:

const colors = require('colors/safe');
console.log(colors.red('Text in red'));
139 голосов
/ 24 ноября 2014

Если вы хотите изменить цвета самостоятельно, без модуля, попробуйте

console.log('\x1b[36m', 'sometext' ,'\x1b[0m');

Сначала '\ x1b [36m', чтобы изменить цвета на "36", а затем вернуться к конечному цвету "0".

Вот список цветовых кодов ANSI

68 голосов
/ 08 июля 2013

, чтобы раскрасить вывод. Вы можете использовать примеры оттуда:
https://help.ubuntu.com/community/CustomizingBashPrompt

Также Суть для nodeJs

Например, если вычтобы часть текста была выделена красным цветом, просто сделайте console.log с помощью:

"\033[31m this will be red \033[91m and this will be normal"

Исходя из этого, я создал расширение "colog" для Node.js.Вы можете установить его, используя:

npm install colog

Репо и npm: https://github.com/dariuszp/colog

28 голосов
/ 03 декабря 2013

В этой документации , вы можете изменить цвета в зависимости от типа данных на выходе:

// you'll need the util module
var util = require('util');

// let's look at the defaults: 
util.inspect.styles

{ special: 'cyan',
  number: 'yellow',
  boolean: 'yellow',
  undefined: 'grey',
  null: 'bold',
  string: 'green',
  date: 'magenta',
  regexp: 'red' }

// what are the predefined colors?
util.inspect.colors

{ bold: [ 1, 22 ],
  italic: [ 3, 23 ],
  underline: [ 4, 24 ],
  inverse: [ 7, 27 ],
  white: [ 37, 39 ],
  grey: [ 90, 39 ],
  black: [ 30, 39 ],
  blue: [ 34, 39 ],
  cyan: [ 36, 39 ],
  green: [ 32, 39 ],
  magenta: [ 35, 39 ],
  red: [ 31, 39 ],
  yellow: [ 33, 39 ] }

Похоже, что это управляющие коды ANSI SGR, где первое число равнокод, который будет выдан перед выводом, а второе число - это код, который будет выдан после.Поэтому, если мы посмотрим на таблицу кодов ANSI SGR в Википедии , вы увидите, что большинство из них начинаются с номера 30-37, чтобы установить цвет переднего плана, и заканчиваются 39, чтобы сбросить до значения по умолчанию.цвет переднего плана.

Так что мне не нравится то, насколько темны некоторые из них.Особенно даты.Продолжайте и попробуйте new Date() в консоли.Темно-пурпурный на черном действительно трудно читать.Давайте вместо этого изменим его на светло-пурпурный.

// first define a new color
util.inspect.colors.lightmagenta = [95,39];

// now assign it to the output for date types
util.inspect.styles.date = 'lightmagenta';

Теперь, когда вы попробуете new Date(), вывод будет гораздо более читабельным.

Если вы хотите автоматически устанавливать цвета при запускеузел, создайте скрипт, который запускает repl, например:

// set your colors however desired
var util = require('util');
util.inspect.colors.lightmagenta = [95,39];
util.inspect.styles.date = 'lightmagenta';

// start the repl    
require('repl').start({});

Сохраните этот файл (например, init.js), затем запустите node.exe init.js.Он установит цвета и запустит командную строку node.js.

(Благодаря loganfsmyth в этот ответ за идею repl.)

27 голосов
/ 12 ноября 2016

Это список доступных цветов (фон, передний план) в консоли с доступными действиями (сброс, реверс, ...).

const colors = {
 Reset: "\x1b[0m",
 Bright: "\x1b[1m",
 Dim: "\x1b[2m",
 Underscore: "\x1b[4m",
 Blink: "\x1b[5m",
 Reverse: "\x1b[7m",
 Hidden: "\x1b[8m",
 fg: {
  Black: "\x1b[30m",
  Red: "\x1b[31m",
  Green: "\x1b[32m",
  Yellow: "\x1b[33m",
  Blue: "\x1b[34m",
  Magenta: "\x1b[35m",
  Cyan: "\x1b[36m",
  White: "\x1b[37m",
  Crimson: "\x1b[38m" //القرمزي
 },
 bg: {
  Black: "\x1b[40m",
  Red: "\x1b[41m",
  Green: "\x1b[42m",
  Yellow: "\x1b[43m",
  Blue: "\x1b[44m",
  Magenta: "\x1b[45m",
  Cyan: "\x1b[46m",
  White: "\x1b[47m",
  Crimson: "\x1b[48m"
 }
};

Используйте его следующим образом:

 console.log(colors.bg.Blue, colors.fg.White , "I am white message with blue background", colors.Reset) ; 
 //don't forget "colors.Reset" to stop this color and return back to the default color

Вы также можете установить:

npm install console-info console-warn console-error --save-dev

Это даст вам вывод ближе к консоли на стороне клиента:

enter image description here

19 голосов
/ 15 июля 2014

Эта библиотека Синдре Сорхуса является лучшей на данный момент:

мелки

  • Высокоэффективный
  • Не распространяется String.prototype
  • Выразительный API
  • Возможность вложения стилей
  • Чистый и сфокусированный
  • Автоопределение поддержки цвета
  • Активно поддерживается
  • Используется 5500+ модулями
18 голосов
/ 14 мая 2018

Color codes are as mentioned

Reset: "\x1b[0m"
Bright: "\x1b[1m"
Dim: "\x1b[2m"
Underscore: "\x1b[4m"
Blink: "\x1b[5m"
Reverse: "\x1b[7m"
Hidden: "\x1b[8m"

FgBlack: "\x1b[30m"
FgRed: "\x1b[31m"
FgGreen: "\x1b[32m"
FgYellow: "\x1b[33m"
FgBlue: "\x1b[34m"
FgMagenta: "\x1b[35m"
FgCyan: "\x1b[36m"
FgWhite: "\x1b[37m"

BgBlack: "\x1b[40m"
BgRed: "\x1b[41m"
BgGreen: "\x1b[42m"
BgYellow: "\x1b[43m"
BgBlue: "\x1b[44m"
BgMagenta: "\x1b[45m"
BgCyan: "\x1b[46m"
BgWhite: "\x1b[47m"

Например, если вы хотите иметь тусклый, красный текст с синим фоном, вы можете сделать это в Javascript следующим образом:

console.log("\x1b[2m", "\x1b[31m", "\x1b[44m", "Sample Text", "\x1b[0m");

Порядок цветов и эффектов, кажется, не так важен, но всегда не забывайте сбрасывать цвета и эффекты в конце.

10 голосов
/ 22 января 2014

Для популярной альтернативы цветов , которая не мешает встроенным методам объекта String, я рекомендую проверить cli-color .

Включает в себя как цвета, так и стили с цепочкой, такие как жирный, курсив и подчеркивание.

Для сравнения различных модулей в этой категории см. здесь .

8 голосов
/ 18 июля 2016

Нет библиотек, никаких сложностей просто:

console.log(red('Error!'));

function red(s) {
    return '\033[31m' + s;
}
...