Подтвердить что ты не робот

Как изменить цвет шрифта node.js?

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

4b9b3361

Ответ 1

Ниже вы можете найти цветовую ссылку текста для команды при запуске приложения 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"

РЕДАКТИРОВАТЬ:

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

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

Ответ 2

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

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


CHALK:

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

CLI-COLOR:

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

Ответ 3

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

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

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

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

Ответ 4

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

Также Gist для nodeJs

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

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

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

npm install colog

Repo и npm: https://github.com/dariuszp/colog

Ответ 5

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

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

// let 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 ] }

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

Итак, мне не нравится то, насколько темны некоторые из них. Особенно даты. Идите дальше и попробуйте 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(), вывод становится более читаемым.

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

// 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.)

Ответ 6

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

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

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

введите описание изображения здесь

Ответ 7

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

мел

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

Ответ 8

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

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

Ответ 9

Удобный однострочный текст, написанный мною для сценариев npm, которые не могут иметь зависимостей:

const { r, g, b, w, c, m, y, k } = [
  ['r', 1], ['g', 2], ['b', 4], ['w', 7],
  ['c', 6], ['m', 5], ['y', 3], ['k', 0],
].reduce((cols, col) => ({
  ...cols,  [col[0]]: f => '\x1b[3${col[1]}m${f}\x1b[0m'
}), {})

console.log('${g('I')} love ${r('Italy')}')

Ответ 10

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

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

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

Ответ 11

Нет библиотек без осложнений просто:

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

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

Ответ 12

Есть два способа взглянуть на изменение цветов для консоли Node.js сегодня.

Один из них - это библиотеки общего назначения, которые могут украшать текстовую строку цветовыми тегами, которые затем выводятся через стандартный console.log.

Лучшие библиотеки для сегодняшнего дня:

И наоборот - исправление существующих методов консоли. Одна из таких библиотек - manakin позволяет автоматически устанавливать стандартные цвета для всех ваших консольных методов (log, warn, error и info).

Одно существенное отличие от общих цветовых библиотек - он может устанавливать цвета либо глобально, либо локально, сохраняя согласованный синтаксис и формат вывода для каждого метода консоли Node.js, который затем используется без указания цветов, поскольку они все установлены автоматически.

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

В частности, для вашей проблемы, здесь простейшее решение:

var con = require('manakin').global;
con.log.color = 30; // Use black color for console.log

Он установит черный цвет для каждого вызова console.log в вашем приложении. См. больше цветовых кодов.

Стандартные цвета, используемые manakin:

введите описание изображения здесь

Ответ 13

Я перегружал консольные методы.

var colors={
Reset: "\x1b[0m",
Red: "\x1b[31m",
Green: "\x1b[32m",
Yellow: "\x1b[33m"
};

var infoLog = console.info;
var logLog = console.log;
var errorLog = console.error;
var warnLog = console.warn;

console.info= function(args)
{
    var copyArgs = Array.prototype.slice.call(arguments);
    copyArgs.unshift(colors.Green);
    copyArgs.push(colors.Reset);
    infoLog.apply(null,copyArgs);
};

console.warn= function(args)
{
    var copyArgs = Array.prototype.slice.call(arguments);
    copyArgs.unshift(colors.Yellow);
    copyArgs.push(colors.Reset);
    warnLog.apply(null,copyArgs);
};
console.error= function(args)
{
    var copyArgs = Array.prototype.slice.call(arguments);
    copyArgs.unshift(colors.Red);
    copyArgs.push(colors.Reset);
    errorLog.apply(null,copyArgs);
};

// examples
console.info("Numeros",1,2,3);
console.warn("pares",2,4,6);
console.error("reiniciandooo");

Вывод.

enter image description here

Ответ 14

Перешел через этот вопрос и хотел использовать некоторые цвета на stdout без каких-либо зависимостей. Здесь сочетаются некоторые другие замечательные ответы.

Вот что у меня есть. (Требуется node v4 или выше)

// colors.js
const util = require('util')

function colorize (color, text) {
  const codes = util.inspect.colors[color]
  return `\x1b[${codes[0]}m${text}\x1b[${codes[1]}m`
}

function colors () {
  let returnValue = {}
  Object.keys(util.inspect.colors).forEach((color) => {
    returnValue[color] = (text) => colorize(color, text)
  })
  return returnValue
}

module.exports = colors()

Просто требуйте файл, а затем используйте его так:

const colors = require('./colors')
console.log(colors.green("I'm green!"))

Предустановленные цветовые коды доступны здесь

Ответ 15

Я не хочу никакой зависимости для этого, и только они работали для меня в OS X. Все остальные примеры из ответов здесь дали мне ошибки Octal literal.

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"

источник: https://coderwall.com/p/yphywg/printing-colorful-text-in-terminal-when-run-node-js-script

Ответ 16

paint-console

Простой цветной журнал. Поддержка проверки объектов и однострочного обновления Этот пакет просто перерисовывает консоль.

установить

npm install paint-console

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

require('paint-console');

console.info('console.info();');
console.warn('console.warn();');
console.error('console.error();');
console.log('console.log();');

демонстрация

Ответ 17

Вы также можете использовать colorworks.

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

var cw = require('colorworks').create();
console.info(cw.compile('[[red|Red message with a [[yellow|yellow]] word.]]'));

Чтобы упростить жизнь, вы также можете создать для нее функцию.

function say(msg) {
  console.info(cw.compile(msg));
}

Теперь вы можете сделать:

say('[[yellow|Time spent: [[green|${time}]]ms.]]');

Ответ 18

var colorSet = {
    Reset: "\x1b[0m",
    Red: "\x1b[31m",
    Green: "\x1b[32m",
    Yellow: "\x1b[33m",
    Blue: "\x1b[34m",
    Magenta: "\x1b[35m"
};

var funcNames = ["info", "log", "warn", "error"];
var colors = [colorSet.Green, colorSet.Blue, colorSet.Yellow, colorSet.Red];

for (var i = 0; i < funcNames.length; i++) {
    let funcName = funcNames[i];
    let color = colors[i];
    let oldFunc = console[funcName];
    console[funcName] = function () {
        var args = Array.prototype.slice.call(arguments);
        if (args.length) {
            args = [color + args[0]].concat(args.slice(1), colorSet.Reset);
        }
        oldFunc.apply(null, args);
    };
}

// Test:
console.info("Info is green.");
console.log("Log is blue.");
console.warn("Warn is orange.");
console.error("Error is red.");
console.info("--------------------");
console.info("Formatting works as well. The number = %d", 123);

Ответ 19

Я создал свой собственный модуль, StyleMe. Я сделал это, поэтому я могу много сделать с небольшим набором текста. Пример:

var StyleMe = require('styleme');
StyleMe.extend() // extend the string prototype

console.log("gre{Hello} blu{world}!".styleMe()) // Logs hello world! with 'hello' being green, and 'world' being blue with '!' being normal.

Он также может быть вложен:

console.log("This is normal red{this is red blu{this is blue} back to red}".styleMe())

Или, если вы не хотите расширять прототип строки, вы можете использовать только одну из трех других опций:

console.log(styleme.red("a string"))
console.log("Hello, this is yellow text".yellow().end())
console.log(styleme.style("some text","red,bbl"))

Ответ 20

Я нашел этот ответ выше (fooobar.com/questions/34331/...) очень полезным, но неполным. Если вы когда-нибудь хотели раскрасить что-то один раз, я думаю, это было бы хорошо, но я думаю, что разделение этого в работоспособной функциональной форме гораздо более применимо к реальным случаям использования.

const Color = {
  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"
}

function colorString(color, string) {
  return '${color}${string}${Color.Reset}';
}

function colorStringLog(color, string) {
  console.log(colorString(color, string));
}

Используйте это так:

colorStringLog(Color.FgYellow, "Some Yellow text to console log");

console.log([
  colorString(Color.FgRed, "red"),
  colorString(Color.FgGreen, "green"),
  colorString(Color.FgBlue, "blue"),
].join(", "));

Ответ 21

Coolors

Это довольно хорошо для использования или расширения. Вы можете просто использовать:

var coolors = require('coolors');
console.log(coolors('My cool console log', 'red'));

Или с конфигурацией:

var coolors = require('coolors');
console.log(coolors('My cool console log', {
   text: 'yellow',
   background: 'red',
   bold: true,
   underline: true,
   inverse: true,
   strikethrough: true
}));

И кажется действительно забавным продлить:

var coolors = require('coolors');
function rainbowLog(msg){
    var colorsText = coolors.availableStyles().text;
    var rainbowColors = colorsText.splice(3);
    var lengthRainbowColors = rainbowColors.length;
    var msgInLetters = msg.split('');
    var rainbowEndText = '';
    var i = 0;
    msgInLetters.forEach(function(letter){
        if(letter != ' '){
            if(i === lengthRainbowColors) i = 0;
            rainbowEndText += coolors(letter, rainbowColors[i]);
            i++;
        }else{
            rainbowEndText += ' ';
        }
    });
    return rainbowEndText;
}
coolors.addPlugin('rainbow', rainbowLog);
console.log(coolorsExtended('This its a creative example extending core with a cool rainbown style', 'rainbown'));

Открыть модуль Coolors

Ответ 22

В ubuntu вы можете просто использовать цветовые коды:

var sys = require('sys');
process.stdout.write("x1B[31m" + your_message_in_red + "\x1B[0m\r\n");

Ответ 23

node-colorify

Предоставляет функции для печати текстов в цвете, а также для форматирования текста, например, жирным шрифтом, миганием и т.д.

Ответ 24

2017:

Простой способ, добавляя временной цвет к сообщению, вам не нужно менять код, используйте keep your console.log('msg') или console.err('error')

var clc = require("cli-color");
var mapping = {
  log: clc.blue,
  warn: clc.yellow,
  error: clc.red
};

["log", "warn", "error"].forEach(function(method) {
  var oldMethod = console[method].bind(console);
  console[method] = function() {
    oldMethod.apply(
      console,
      [mapping[method](new Date().toISOString())]
      .concat(arguments)
    );
  };
});

enter image description here

Ответ 25

Регистратор/index.js

const colors = {
    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",
};

module.exports = () => {
    Object.keys(colors).forEach(key => {
        console['log' + key] = (strg) => {
            if(typeof strg === 'object') strg = JSON.stringify(strg, null, 4);
            return console.log(colors[key]+strg+'\x1b[0m');
        }
    });
}

app.js

require('./logger')();

Тогда используйте это как:

console.logBgGreen(" grüner Hintergrund ")

Ответ 26

Мне очень понравился ответ @Daniel, но функции console.log {color} не работали так же, как обычный console.log. Я сделал несколько изменений, и теперь все параметры новых функций будут переданы в console.log (а также цветовые коды).

const _colors = {
    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",
};

const enableColorLogging = function(){
    Object.keys(_colors).forEach(key => {
        console['log' + key] = function(){
            return console.log(_colors[key], ...arguments, _colors.Reset);
        }
    });
}

Ответ 27

Если вы используете Windows CMD, перейдите в терминал "Свойства/Цвета" (CMD вверху слева), а затем переопределите значение RGB оскорбительного цвета. В моем случае я считаю, что это пятый квадрат цвета слева, который я изменил на (222,222,222). Не имеет значения, отображает ли выбранный радиокнопка экранный текст или фоновый экран, поскольку вы просто переопределяете этот особый "системный" цвет. После того, как вы изменили цвет, не забудьте выбрать предпочтительный цвет фона или текста, прежде чем нажимать "ОК".

После изменения все эти красноватые сообщения из Node (Ember в моем случае) отчетливо видны.

Ответ 28

Это подход для Windows 10 (может быть, для 7), и он меняет цветовую схему (тему) для cmd, самого терминала npm, а не только консольный вывод для конкретного приложения.

Я нашел работающий плагин Windows - Color Tool, который предположительно разработан под зонтиком Windows. Описание доступно по ссылке.

Я добавил каталог colortool в переменную пути к системной среде, и теперь он доступен при каждом запуске терминала (командная строка NodeJs, cmd).

Ответ 29

var to_rgb = function (_text, _r, _g, _b) {
    return "\x1b[38;2;" + _r + ";" + _g + ";" + _b + "m" + _text + "\x1b[0m";
};

Этот код помогает установить цвет переднего плана: \x1b[38;2;R;G;Bm

Это может не работать в некоторых местах