नोड.जेएस के कंसोल फ़ॉन्ट रंग को कैसे बदलें?


569

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


4
उसी स्थान पर जहां आप पहले से ही पृष्ठभूमि का रंग बदलने के लिए उपयोग करते थे, आप अन्य रंगों को बदल सकते हैं।
दान डी।

@hippietrail क्या आप लोगों ने बेहतर समाधान पाया है या आप इस प्रश्न के उत्तर में से एक को स्वीकार कर सकते हैं?
nelsonic

आप शुद्ध Node.js में यह कैसे करते हैं? रंगों या किसी अन्य पैकेज के बिना।
कोस्टा

1
मुझे भी यही तकलीफ़ है। मुझे संदेह है @Viclib विंडोज़ का उपयोग कर रहा है (जैसा कि मैं हूं), यही वजह है कि टर्मिनल रंगों को बदलने के निर्देश एक विदेशी अवधारणा है। विंडोज़ कमांड प्रॉम्प्ट 2 अग्रभूमि और 2 पृष्ठभूमि रंग बदलने की अनुमति देता है। नोड अन्य रंगों का उपयोग करता है जो विंडोज़ कमांड प्रॉम्प्ट परिभाषित नहीं कर सकते हैं।
ग्रेग वुड्स

2
मुझे बाद में पता चला कि विंडोज कमांड प्रॉम्प्ट रंग कैसे काम करता है, इसके लिए मेरा मानसिक मॉडल पूरी तरह से गलत था। मैंने गलत तरीके से माना (एक भयानक यूआई के कारण) कि आप केवल अग्रभूमि, पृष्ठभूमि रंग बदल सकते हैं। ये गलत है। सभी 16 रंगों का उपयोग कंसोल ऐप द्वारा किया जा सकता है, और सभी 16 के लिए समझदार रंगों को चुनना महत्वपूर्ण है, और हमेशा के लिए रंग टाइल 1 का उपयोग पृष्ठभूमि के रूप में करें (और "पॉपअप पृष्ठभूमि के लिए टाइल 9)"। यह मेरे लिए एक ऐसा रहस्योद्घाटन था, मैंने एक ब्लॉग पोस्ट (वास्तव में एक दुर्लभ घटना) लिखी थी। gregwoods.co.uk/2015/04/…
ग्रेग वुड्स

जवाबों:


1148

जब आप नोड.जेएस एप्लिकेशन चला रहे हों, तब आप टेक्स्ट के रंगों के संदर्भ पा सकते हैं:

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 के लिए कोड है । केवल रंगों और शैलियों से निपटने वाले एस्केप सीक्वेंस को ANSI एस्केप कोड के रूप में भी जाना जाता है escape और इसे मानकीकृत किया जाता है, इसलिए वे किसी भी मंच पर काम करते हैं।

विकिपीडिया में विभिन्न टर्मिनलों के रंगों की एक अच्छी तुलना है कि https://en.wikipedia.org/wiki/ANSI_escape_code#olors


42
मैंने इस प्रश्न को स्वीकार कर लिया है क्योंकि यह सबसे बड़ा काम है, जिसमें कई रंग हैं और कोई निर्भरता नहीं है। यदि आप निर्भरता के साथ सरल समाधान चाहते हैं , तो @ nelsonic के उत्तर की जांच करें जो बहुत ही सीधा-सीधा काम बताता है।
MaiaVictor

7
आपको यह संदर्भ कहां से मिला? एक रंग मूल्य में हर चरित्र का क्या मतलब है?
जियोर्जोस.नल

10
@ giorgos29cm → यहाँ देखें । Btw, 1;चमकीले रंगों के लिए जोड़ें , अर्थात "\ X1b [1; 34 मीटर" == हल्का नीला ...
फ्रैंक नोक

2
कंसोल के बजाय फ़ाइल को प्रिंट करते समय मुझे इन पात्रों को दिखाने से कैसे रोकना चाहिए?
स्काई

1
उत्सुकता से, विंडोज 10 पॉवरशेल पर पीला सफेद हो जाता है पीला काम करने के लिए बनाया जा सकता है; चाक करता है। हालाँकि, इस जवाब ने मुझे कुछ समय के लिए लॉग के लिए निर्भरता के रूप में चॉक जोड़ने से बचा लिया, धन्यवाद!
वेबेलो

318

Node.js. में कंसोल टेक्स्ट फ़ॉर्मेट करने के लिए कई पैकेज उपलब्ध हैं। सबसे लोकप्रिय हैं:

उपयोग:


चाक:

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बदलने की अपनी अस्वीकृति को नोट किया है । यदि आप अपने प्रोटोटाइप को अकेले छोड़ना पसंद करते हैं, तो इसके बजाय निम्नलिखित कोड का उपयोग करें:

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

1
यह भी शैलियों के लिए सरल हल्के समर्थन है!
हिप्पिएट्रेल

2
@devundef स्ट्रिंग ऑब्जेक्ट में विधियाँ जोड़ने पर आपसे सहमत है। GitHub पर मॉड्यूल लेखक के लिए उल्लेखनीय है। और / या सरलता के समान स्तर के साथ एक वैकल्पिक मॉड्यूल / विधि का सुझाव दे रहा है।
nelsonic

3
जबकि मैं मानता हूं कि मैट जोंसन का जवाब (यूज.प्राइवेट विधि के डिफ़ॉल्ट रंगों को देखें - नीचे देखें) कलर्स मॉड्यूल का उपयोग करने से बेहतर है, कलर्स मॉड्यूल को शून्य सेटअप की आवश्यकता होती है और उपयोगकर्ताओं के विशाल बहुमत की जरूरतों को पूरा करता है जो बस कंसोल के रंग को बदल रहा है .log उत्पादन। ज़रूर, "बिल्ट-इन के साथ गड़बड़" बुरा है (100% सहमत) लेकिन किसी भी तैनात कोड में कंसोल.लॉग स्टेटमेंट नहीं होना चाहिए, ताकि इस बारे में व्यावहारिक हो सके। @devundef क्या आपके यूनिट परीक्षणों के साथ प्रोटोटाइप मेस में अतिरिक्त स्ट्रिंग विधियों को जोड़ा गया है?
नेलसोनिक

8
कलर्स के पास अब है: var colors = require('colors/safe');और फिर उपयोग करेंcolors.red('left string all alone')
Laoujin

1
अच्छी तरह से देखा @Laoujin - अगली बार एक संपादन का प्रस्ताव करने के लिए स्वतंत्र महसूस हो रहा है। मैंने उत्तर में कलर्स के लिए कोड उदाहरण में संशोधन किया है।
nelsonic

155

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

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

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

यहां एएनएसआई रंग कोड की एक सूची दी गई है


15
रंग वापस करने का तरीका बताने के लिए धन्यवाद।
वासिल बोरोविक

25
यहां ANSI टर्मिनल कोड, telepathy.freedesktop.org/doc/telepathy-glib/…
Joes

1
फ़ॉन्ट शैली बदलने के बारे में, बोल्ड रेड, इटैलिक ग्रीन जैसे क्या हैं?
uzay95

1
पूरी तरह से काम किया, सख्त मोड में रोका जा रहा ऑक्टल एस्केप कोड के साथ खिलवाड़ नहीं किया।
फ्लोरि

70

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

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

उदाहरण के लिए यदि आप लाल रंग में पाठ का हिस्सा चाहते हैं, तो बस कंसोल करें। इसके साथ:

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

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

npm install colog

रेपो और npm: https://github.com/dariuszp/colog


1
मेरा मानना ​​है कि ओपी विशिष्ट रंग में विशिष्ट पाठ को प्रिंट नहीं करना चाहता है, लेकिन सभी टर्मिनल आउटपुट डिफ़ॉल्ट रूप से एक अलग रंग में होना चाहिए, शायद सफेद पृष्ठभूमि को देखते हुए भी काला।
cwoebker

फिर उसे अपने टर्मिनल की सेटिंग्स बदलनी चाहिए। मुझे यकीन है कि यह लिनक्स पर संभव है। विंडोज के बारे में कोई विचार नहीं है।
डेरियसज़प

14
\033[31mकाम करता है, लेकिन \033[91mनहीं करता है। उबंटू टर्मिनल के लिए यह होना चाहिए \033[0m
रेडसंड्रो

4
और ऑक्टल बच error: octal escape sequences "\033[31mServer ready @ #{app.get('port')}\033[91m" are not allowed
निकलते हैं

4
\033[0mपाठ को वापस सामान्य करने के लिए उपयोग किया जाना चाहिए, न कि\033[91m
मोलेरोह

31

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

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 आपको क्लाइंट साइड के कंसोल के करीब आउटपुट देगा:

यहाँ छवि विवरण दर्ज करें


1
मैं उसी का उपयोग कर रहा हूं और ठीक काम करता हूं लेकिन किसी कारण से डिम कुछ भी नहीं करता है? मुझे लगता है कि ग्रे कलर इफ़ेक्ट इसलिए सोचा था कि डिम इफ़ेक्ट के साथ व्हाइट कलर का इस्तेमाल होगा, जिसके परिणामस्वरूप ग्रे कलर होगा लेकिन सिर्फ़ व्हाइट कलर का प्रिंट ही डिम होगा। कोई उपाय?
अंगद

28

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

// 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() , तो आउटपुट बहुत अधिक पठनीय होता है।

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

// 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 । यह रंगों को सेट करेगा और नोड.जेएस कमांड प्रॉम्प्ट लॉन्च करेगा।

( उत्तर विचार के लिए इस उत्तर में loganfsmyth का धन्यवाद ।)


19

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

चाक

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

2
हाँ, लेकिन इसकी एक और निर्भरता
Wayofthefuture

18

रंग कोड के रूप में उल्लेख कर रहे हैं

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"

उदाहरण के लिए यदि आप नीले रंग की पृष्ठभूमि के साथ एक डिम, लाल पाठ करना चाहते हैं, तो आप इसे इस तरह से जावास्क्रिप्ट में कर सकते हैं:

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

रंगों और प्रभावों का क्रम उतना महत्वपूर्ण नहीं लगता है, लेकिन अंत में रंगों और प्रभावों को रीसेट करना हमेशा याद रखें।


@ सेरी ब्लिंक भी मेरे लिए काम नहीं करता है, ऐसा लगता है कि यह नोड में उपलब्ध नहीं है
Sv443

@ Sv443 लेकिन यह स्क्रीनशॉट पर काम करता है :) और सवाल नोड के बारे में था। मैंने सोचा कि यह केवल विंडोज कंसोल में काम नहीं करता है। आप किस ओएस का उपयोग करते हैं?
सेर्गेई

2
@ मैं विंडोज का उपयोग कर रहा हूं और सीएमडी और पॉवर्सशेल में कोशिश कर रहा हूं और दोनों काम नहीं करते हैं
Sv443

@Sergey मेरे स्क्रीनशॉट MacOS टर्मिनल एप्लिकेशन से हैं। मेरा मानना ​​है कि यह कुछ ऐसा है जो आपके शेल एप्लिकेशन को समर्थन करना चाहिए। यदि आप विंडोज़ का उपयोग कर रहे हैं, तो मैं सुझाव देता हूं कि Cygwin को स्थापित करने का प्रयास करें और इसे bash पर आज़माएं। मैं इसके बारे में भी जानने के लिए उत्सुक हूं।
19

@ और मुझे यकीन नहीं है कि यह समान है, लेकिन मैंने इसे गिट-बैश पर आज़माया और यह काम नहीं किया।
सर्गेई

14

एक आसान वन-लाइनर जो मैंने 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')}`)

संपादित करें: r,g,b,w,c,m,y,k लाल, हरे, नीले, सफेद, सियान, मैजेंटा, पीले और ब्लाक (के) के लिए खड़ा है


उपयोगी लगता है, लेकिन क्या आप इसे आगे समझा सकते हैं? डिटेक्टिव मोड ऑन: आह ओके, आरजीबीडब्ल्यू ... का मतलब लाल, हरा, नीला, सफेद, सियान, मैजेंटा, पीला और के है?
538ROMEO

10

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

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

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


10

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

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

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

1
यह आसान नहीं है जब आपको पता चलता है कि यह वस्तुओं के साथ काम नहीं करता है जिस तरह से कंसोल उन्हें संभालता है, और यह कि यह कंसोल स्ट्रीम प्रकार या TTY समर्थन का सम्मान नहीं करता है, जो आगे की समस्याएं पैदा करता है। यह सिर्फ एक हैक है जो सड़क पर बहुत सारी समस्याएं लाएगा।
महत्वपूर्ण-टी

यही कारण है कि JSON.stringify के लिए है
wayofthefuture

10

इमोजी

आप पाठ के लिए रंगों का उपयोग कर सकते हैं जैसा कि उनके उत्तर में उल्लिखित है।

लेकिन आप इसके बजाय इमोजीस का उपयोग कर सकते हैं ! उदाहरण के लिए आप उपयोग कर सकते हैं आप ⚠️चेतावनी संदेशों के लिए और 🛑त्रुटि संदेशों के लिए उपयोग कर सकते हैं ।

या बस इन नोट बुक को रंग के रूप में उपयोग करें:

📕: error message
📙: warning message
📗: ok status message
📘: action message
📓: canceled status message
📔: Or anything you like and want to recognize immediately by color

बक्शीश:

यह विधि आपको जल्दी से स्कैन करने और लॉग को सीधे स्रोत कोड में खोजने में भी मदद करती है ।

लेकिन लिनक्स डिफ़ॉल्ट इमोजी फ़ॉन्ट डिफ़ॉल्ट रूप से रंगीन नहीं है और आप उन्हें रंगीन बनाना चाहते हैं, पहले।


6

आज Node.js कंसोल के लिए बदलते रंग देखने के दो तरीके हैं।

एक सामान्य-उद्देश्य पुस्तकालयों के माध्यम से है जो रंग टैग के साथ एक पाठ स्ट्रिंग को सजा सकता है, जिसे आप मानक के माध्यम से आउटपुट करते हैं console.log

आज के लिए शीर्ष पुस्तकालय:

और दूसरा तरीका - मौजूदा कंसोल विधियों को पैच करना। ऐसा ही एक पुस्तकालय - मैनाकिन आप स्वचालित रूप से अपने सभी सांत्वना तरीकों के लिए मानक रंग सेट करने देता है ( log, warn, errorऔरinfo )।

जेनेरिक रंग पुस्तकालयों से एक महत्वपूर्ण अंतर - यह हर Node.js कंसोल विधि के अनुरूप सिंटैक्स और आउटपुट स्वरूप रखते हुए, वैश्विक या स्थानीय रूप से रंग सेट कर सकता है, जिसका उपयोग आप रंगों को निर्दिष्ट किए बिना करते हैं, क्योंकि वे सभी स्वचालित रूप से सेट होते हैं। ।

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

विशेष रूप से आपकी समस्या के लिए, यहाँ सबसे सरल उपाय है:

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

यह console.logआपके एप्लिकेशन में प्रत्येक कॉल के लिए काला रंग सेट करेगा । अधिक रंग कोड देखें

मैनाकिन द्वारा उपयोग किए जाने वाले डिफ़ॉल्ट रंग :

यहाँ छवि विवरण दर्ज करें


6

मैंने कंसोल विधियों को ओवरलोड किया।

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

आउटपुट है।

यहाँ छवि विवरण दर्ज करें


यह स्वरूपण सिंटैक्स के साथ काम नहीं करता है। उदाहरण: console.info('Hello %s', 'World!')प्रदर्शित करना चाहिए Hello World!, और नहीं Hello %s World!
महत्वपूर्ण-१ '

@ महत्वपूर्ण- यह कोशिश करें : यह काम करना चाहिए।
सर्गेई

5

इस सवाल पर आया था, और बिना किसी निर्भरता के कुछ रंगों का उपयोग करना चाहता था। यह यहाँ कुछ अन्य महान उत्तरों को जोड़ती है।

यहाँ मुझे क्या मिला है। (नोड 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!"))

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


1
उदाहरण के लिए, लॉग फ़ाइल में रीडायरेक्ट होने पर सही ढंग से काम नहीं करेगा।
महत्वपूर्ण-

4

रंग-सांत्वना

साधारण रंगीन लॉग। समर्थन ऑब्जेक्ट्स और सिंगल लाइन अपडेट का निरीक्षण करता है यह पैकेज सिर्फ पुनरावृत्ति कंसोल है।

इंस्टॉल

npm install paint-console

प्रयोग

require('paint-console');

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

डेमो


4

मैं इसके लिए कोई निर्भरता नहीं चाहता और केवल इन्हीं ने मेरे लिए 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


4

मुझे यह उत्तर ऊपर मिला ( https://stackoverflow.com/a/41407246/4808079 ) बहुत उपयोगी, लेकिन अधूरा। यदि आप कभी केवल एक बार कुछ रंग देना चाहते हैं, तो मुझे लगता है कि यह ठीक होगा, लेकिन मुझे लगता है कि इसे एक कार्यात्मक रूप में साझा करना वास्तविक जीवन के उपयोग के मामलों पर बहुत अधिक लागू होता है।

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

4

लकड़हारा / 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 ")

4

यह कुछ हद तक इस बात पर निर्भर करता है कि आप किस प्लेटफार्म पर हैं। ऐसा करने का सबसे आम तरीका ANSI एस्केप सीक्वेंस को प्रिंट करना है। एक सरल उदाहरण के लिए, ब्लेंडर बिल्ड स्क्रिप्ट से कुछ अजगर कोड यहां दिया गया है:

// This is a object for use ANSI escape to color the text in the terminal
const bColors = {
    HEADER    : '\033[95m',
    OKBLUE    : '\033[94m',
    OKGREEN   : '\033[92m',
    WARNING   : '\033[93m',
    FAIL      : '\033[91m',
    ENDC      : '\033[0m', 
    BOLD      : '\033[1m',   
    UNDERLINE : '\033[4m'
}

इस तरह कोड का उपयोग करने के लिए, आप कुछ ऐसा कर सकते हैं

console.log(`${bColors.WARNING} My name is sami ${bColors.ENDC}`)

मुझे लगता है "ऑक्टल एस्केप सीक्वेंस को सख्त मोड में अनुमति नहीं है।"
ल्यूकस्वक्सप

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

3

आप रंगकर्म का भी उपयोग कर सकते हैं ।

उपयोग:

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

2

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

कूलर मॉड्यूल देखें


उदाहरण के लिए, लॉग फ़ाइल में रीडायरेक्ट किए जाने पर यह Node.js में सही ढंग से काम नहीं करेगा।
महत्वपूर्ण-

2

मैंने अपना खुद का मॉड्यूल स्टाइलम बनाया । मैंने इसे बनाया इसलिए मैं बहुत कम टाइपिंग कर सकता हूं। उदाहरण:

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

1

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

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

अप्रयुक्त क्यों require?
झपट्टा GOFUNDME RELICENSING

यह कुछ साल पहले की बात है। यह stdout लिखने के लिए उपयोगी था, शायद अब यह पहले से ही डिफ़ॉल्ट रूप से आयात किया गया है।
केन्ज़ी मिनामोरी

आह अच्छा। मैं बस उत्सुक था क्योंकि ऐसा नहीं है कि sysइसका इस्तेमाल कहीं भी किया जा रहा था। यह वास्तव में आजकल आवश्यक नहीं है, हालांकि!
झपट्टा गोफुन्डे रिलेक्सिंग

1

नोड colorify

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


3
जबकि आपके द्वारा प्रदत्त लिंक प्रश्न का उत्तर दे सकता है। यदि भविष्य में लिंक की समय सीमा समाप्त हो जाती है, तो अपने उत्तर में अपने समाधान के आवश्यक हिस्सों को सीधे रखना सबसे अच्छा है।
केमेक्सनर

1

मुझे वास्तव में @ डैनियल का उत्तर पसंद आया, लेकिन कंसोल.लॉग {color} फ़ंक्शंस ने नियमित कंसोल.लॉग की तरह काम नहीं किया। मैंने कुछ बदलाव किए हैं, और अब नए कार्यों के सभी मापदंडों को कंसोल.लॉग (साथ ही रंग कोड) को पारित किया जाएगा।

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

1

2017:

सरल तरीका, संदेश में समय का रंग जोड़ते हुए, आपको अपना कोड बदलने की आवश्यकता नहीं है, अपने कंसोल.लॉग ('संदेश') या कंसोल का उपयोग करें। '(' त्रुटि ')

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

यहाँ छवि विवरण दर्ज करें


0

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

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


0

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

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

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.