Как изменить узел.цвет шрифта консоли 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 самыми популярными являются:
- Мел -https://github.com/chalk/ мел
- цвета -https://www.npmjs.org/package/ цвета
- 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
это даст вам выход ближе к консоли на стороне клиента :
этой библиотеки Sindre Sorhus является лучшим на данный момент:
мел
- высокая производительность
- не распространяется
String.prototype
- выразительный API
- возможность вложить стили
- чистый и сосредоточенный
- авто-обнаруживает поддержку цвета
- активно поддерживается
- используется 5500 + модулей
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");
заказ цветов и эффектов, кажется, не так важны, но всегда помните, чтобы сбросить цвета и эффекты в конце.
нет библиотек нет осложнений просто просто:
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");
удобный однострочный я написал для сценариев 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
вызовите приложение. См. больше цветовых кодов.
цвета по умолчанию используется манакин:
Я не хочу никакой зависимости для этого, и только они работали для меня на 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'));
в Ubuntu вы можете просто использовать цветовые коды:
var sys = require('sys');
process.stdout.write("x1B[31m" + your_message_in_red + "\x1B[0m\r\n");
содержит функции для печати текста в цвете, а также делать форматирование текста, таких как полужирный, моргать и т. д..
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)
);
};
});
Это подход для 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
это может не сработать где-то