colors - Node.js के कंसोल फ़ॉन्ट रंग को कैसे बदलें?




console (20)

मुझे आंखों की समस्याओं के कारण कंसोल पृष्ठभूमि रंग को सफेद में बदलना पड़ा, लेकिन फ़ॉन्ट भूरे रंग का है और यह संदेशों को अपठनीय बनाता है। मैं इसे बदलने में किस तरह सक्षम हूं?


Answers

मैं इसके लिए कोई निर्भरता नहीं चाहता हूं और केवल इन्हें ओएस एक्स पर मेरे लिए काम किया है। यहां उत्तरों के सभी अन्य नमूनों ने मुझे 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


सिंद्रे सोरहस द्वारा यह पुस्तकालय इस समय सबसे अच्छा है:

chalk

  • अत्यधिक प्रदर्शन करने वाला
  • String.prototype विस्तार नहीं करता है
  • अभिव्यक्तिशील एपीआई
  • घोंसला शैलियों की क्षमता
  • स्वच्छ और केंद्रित
  • रंग समर्थन स्वतः पता लगाता है
  • सक्रिय रूप से बनाए रखा
  • 5500+ मॉड्यूल द्वारा उपयोग किया जाता है

यह विंडोज 10 (शायद 7 के लिए) के लिए एक दृष्टिकोण है और यह एक विशेष ऐप के लिए केवल कंसोल आउटपुट न केवल cmd, npm टर्मिनल के लिए रंग योजना (विषय) को बदलता है।

मुझे काम कर रहे विंडोज प्लगइन - कलर टूल , जो संभवतः विंडोज छतरी के तहत विकसित किया गया है। एक link पर उपलब्ध है।

मैंने colortool निर्देशिका को सिस्टम पर्यावरण पथ चर में जोड़ा और अब जब भी मैं टर्मिनल प्रारंभ करता हूं (NodeJs कमांड प्रॉम्प्ट, cmd) उपलब्ध होता है।


इस सवाल पर आया, और किसी भी निर्भरता के बिना 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!"))

पूर्वनिर्धारित रंग कोड यहां उपलब्ध here


कोई पुस्तकालय कोई जटिलता नहीं सरल है:

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

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

एक आसान एक-लाइनर जिसे मैंने एनपीएम स्क्रिप्ट के लिए लिखा था जिसमें निर्भरता नहीं हो सकती है:

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')}`)


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


इस दस्तावेज़ के अनुसार , आप आउटपुट के डेटा प्रकार के आधार पर रंग बदल सकते हैं:

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

ये एएनएसआई एसजीआर एस्केप कोड प्रतीत होते हैं, जहां पहली संख्या आउटपुट से पहले उत्सर्जित करने के लिए कोड है, और दूसरा नंबर कोड उत्सर्जित करने के लिए कोड है। इसलिए यदि हम विकिपीडिया पर एएनएसआई एसजीआर कोड के चार्ट को देखते हैं, तो आप देखेंगे कि इनमें से अधिकतर फोरग्राउंड रंग सेट करने के लिए 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() आज़माते हैं, तो आउटपुट बहुत अधिक पठनीय होता है।

यदि आप नोड लॉन्च करते समय स्वचालित रूप से रंग सेट करना चाहते हैं, तो एक स्क्रिप्ट बनाएं जो प्रतिलिपि लॉन्च करे, इस तरह:

// 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 के लिए धन्यवाद।)


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 एक बचने का अनुक्रम है जिसे आपके टर्मिनल द्वारा अवरुद्ध किया जाएगा और इसे लाल रंग में स्विच करने के लिए निर्देशित किया जाएगा। वास्तव में, \x1b गैर-प्रिंट करने योग्य नियंत्रण चरित्र से escape के लिए कोड है। केवल रंगों और शैलियों से निपटने वाले अनुक्रम अनुक्रमों को एएनएसआई एस्केप कोड के रूप में भी जाना जाता है और मानकीकृत होते हैं, इसलिए इसलिए उन्हें किसी प्लेटफॉर्म पर काम करना चाहिए।


colors लोकप्रिय विकल्प के लिए जो स्ट्रिंग ऑब्जेक्ट के अंतर्निहित तरीकों से गड़बड़ नहीं करते हैं, मैं cli-color की जांच करने की सलाह देता हूं।

बोल्ड, इटैलिक और अंडरलाइन जैसे रंग और श्रृंखला योग्य शैलियों दोनों शामिल हैं।

इस श्रेणी में विभिन्न मॉड्यूल की तुलना के लिए, here देखें।


अपने आउटपुट को रंगने के लिए आप वहां से उदाहरणों का उपयोग कर सकते हैं:
https://help.ubuntu.com/community/CustomizingBashPrompt

नोडजेस के लिए भी एक गिस्ट

उदाहरण के लिए यदि आप लाल रंग में टेक्स्ट का हिस्सा चाहते हैं, तो बस console.log के साथ करें:

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

इसके आधार पर मैंने नोड.जे.एस. के लिए "कोलग" एक्सटेंशन बनाया है। आप इसका उपयोग कर इंस्टॉल कर सकते हैं:

npm install colog

रेपो और एनपीएम: https://github.com/dariuszp/colog


node-colorify

रंगों में रंगों को मुद्रित करने के लिए फ़ंक्शंस प्रदान करता है और बोल्ड, ब्लिंक इत्यादि जैसे टेक्स्ट स्वरूपण भी करता है।


यदि आप विंडोज सीएमडी का उपयोग कर रहे हैं तो टर्मिनल प्रॉपर्टीज / कलर्स (सीएमडी टॉप बाएं) पर जाएं और फिर आक्रामक रंग के आरजीबी मूल्य को फिर से परिभाषित करें। मेरे मामले में मेरा मानना ​​है कि यह बाएं से पांचवां रंग वर्ग है, जिसे मैंने बदल दिया (222,222,222)। इससे कोई फर्क नहीं पड़ता कि वर्तमान में चयनित रेडियो बटन स्क्रीन टेक्स्ट या स्क्रीन पृष्ठभूमि दिखाता है क्योंकि आप उस विशिष्ट "सिस्टम" रंग को फिर से परिभाषित करते हैं। एक बार जब आप रंग बदल जाते हैं तो ठीक क्लिक करने से पहले पृष्ठभूमि या टेक्स्ट के लिए पसंदीदा रंग का चयन करना न भूलें।

परिवर्तन के बाद नोड से मेरे सभी लाल संदेश (मेरे मामले में एम्बर) स्पष्ट रूप से दिखाई दे रहे हैं।


उबंटू में आप बस रंग कोड का उपयोग कर सकते हैं:

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

यदि आप मॉड्यूल के बिना सीधे रंग बदलना चाहते हैं तो कोशिश करें

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

पहले '\ x1b [36m' रंगों को "36" में बदलने के लिए और फिर टर्मिनल रंग "0" पर वापस करने के लिए।


यह उपलब्ध कार्यों (रीसेट, रिवर्स, ...) के साथ कंसोल में उपलब्ध रंगों (पृष्ठभूमि, अग्रभूमि) की एक सूची है।

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

आईटी आपको क्लाइंट साइड के कंसोल के करीब आउटपुट देगा:


आप 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.]]`);

मैंने कंसोल विधियों को अधिभारित किया।

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

आउटपुट है।


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

demo


मैंने उपयोग कर लिया है

System.AppDomain.CurrentDomain.BaseDirectory

जब मैं किसी एप्लिकेशन फ़ोल्डर से संबंधित पथ खोजना चाहता हूं। यह एएसपी.Net और Winform अनुप्रयोगों दोनों के लिए काम करता है। इसे System.Web असेंबली के किसी भी संदर्भ की आवश्यकता नहीं है।





node.js colors console