Как изменить узел.цвет шрифта консоли js?

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

28 ответов


ниже вы можете найти ссылку цвета текста для команды при запуске узла.применение ДШ:

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 sequence это будет перехвачено ваш терминал и инструктирует его переключиться на красный цвет. На самом деле,\x1b - код непечатаемый управляющий символ escape. Escape-последовательности, имеющие дело только с цветами и стилями, также известны как ANSI escape-код и стандартизированы, поэтому они (должны) работать на любой платформе.


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

  1. Мел -https://github.com/chalk/ мел
  2. цвета -https://www.npmjs.org/package/ цвета
  3. Cli-цвет -https://www.npmjs.org/package/ cli-цвет

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

npm установить мел

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

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

npm установить цвета

var colors = require('colors/safe'); // does not alter string prototype
console.log(colors.red('This String Will Display RED'));

есть несколько цветов на выбор, а также форматирования текста полужирный и Курсив.

много люди отметили свое неодобрение в цвета изменения the строку прототипа, если вы предпочитаете ваши прототипы, оставленные в покое, вы захотите использовать cli-color или мел

cli-color использование:

npm установить cli-color

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

и cli-color и мел требуется немного больше ввода, но вы получаете аналогичные результаты (для цветов) без добавления прототипа строки. Оба поддержка хорошего диапазона цветов, форматирования (жирный / курсив и т. д.) и тесты.

выбирай.


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

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

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


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

также a суть для nodeJs

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

"3[31m this will be red 3[91m and this will be normal"

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

npm install colog

РЕПО и НПМ: https://github.com/dariuszp/colog


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

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

это, по-видимому, escape-коды ANSI SGR, где первое число-это код, который нужно излучать перед выходом, а второе число-код, который нужно излучать после. Если мы посмотрим на диаграмма кодов СГР ANSI в Википедии, вы увидите, что большинство из них начинаются с номера 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. Он установит цвета и запустит узел.командная строка js.

(благодаря loganfsmyth в ответ для идеи repl.)


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

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


этой библиотеки Sindre Sorhus является лучшим на данный момент:

мел

  • высокая производительность
  • не распространяется String.prototype
  • выразительный API
  • возможность вложить стили
  • чистый и сосредоточенный
  • авто-обнаруживает поддержку цвета
  • активно поддерживается
  • используется 5500 + модулей

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

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


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

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

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


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

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

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

Я перегрузил методы консоли.

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


удобный однострочный я написал для сценариев 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')}`)

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

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

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

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

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

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

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

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

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

цвета по умолчанию используется манакин:

enter image description here


Я не хочу никакой зависимости для этого, и только они работали для меня на 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


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

демо


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

вот что у меня есть. (Требуется узел 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!"))

в predefinied цветовые коды доступны здесь


вы также можете использовать 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.]]`);

Я создал свой собственный модуль, 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())

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

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

Coolors

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

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

или с config:

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 модуль


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

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

node-colorify

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


2017:

простой способ, добавляя цвет времени в сообщение, вам не нужно менять код, используйте keep your console.журнал ('msg') или консоль.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


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

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

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


индекс регистратор/.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');
        }
    });
}

в вашем приложении.js

require('./logger')();

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

console.logBgGreen(" grüner Hintergrund ")

Мне очень понравился ответ @Daniel'S, но консоль.функции log{color} работали не так, как обычная консоль.бревно. Я внес несколько изменений,и теперь все параметры новых функций будут переданы в консоль.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);
        }
    });
}

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

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

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


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

это может не сработать где-то