Comment changer la couleur de police de la console node.js?

J’ai dû changer la couleur d’arrière-plan de la console en blanc à cause de problèmes oculaires, mais la police est de couleur grise et rend les messages illisibles. Comment puis-je le changer?

Vous trouverez ci-dessous une référence de couleurs du texte à la commande lors de l’exécution de l’application node.js:

console.log('\x1b[36m%s\x1b[0m', 'I am cyan'); //cyan console.log('\x1b[33m%s\x1b[0m', ssortingngToMakeYellow); //yellow 

Notez que %s est où dans la chaîne (le deuxième argument) est injecté. \x1b[0m réinitialise la couleur du terminal pour ne plus être la couleur choisie après ce point.

Référence couleurs

 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" 

MODIFIER:

Par exemple, \x1b[31m est une séquence d’échappement qui sera interceptée par votre terminal et lui ordonne de passer à la couleur rouge. En fait, \x1b est le code \x1b pour escape caractère de contrôle non imprimable . Les séquences d’échappement traitant uniquement des couleurs et des styles sont également connues sous le nom de code d’échappement ANSI et sont normalisées. Elles doivent donc (devraient) fonctionner sur toutes les plates-formes.

Il y a quelques modules pour changer la couleur de police de la console dans Node.js les plus populaires sont:

  1. Craie – https://github.com/chalk/ craie
  2. Couleurs – https://www.npmjs.org/package/ colors
  3. Cli-color – https://www.npmjs.org/package/cli-color

utilisation de la craie :

npm installez la craie

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

utilisation des couleurs :

npm installez les couleurs

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

Il y a quelques couleurs à choisir ainsi que le formatage du texte comme Gras et Italique .

Beaucoup de gens ont noté leur désapprobation à Couleurs en modifiant le prototype Ssortingng , si vous préférez que vos prototypes soient laissés seuls, vous voudrez utiliser cli-color ou craie

utilisation de cli-color :

npm installer cli-color

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

Cli-color et chalk requièrent un peu plus de frappe, mais vous obtenez des résultats similaires (aux couleurs) sans ajout de prototype de chaîne. Les deux supportent une bonne gamme de couleurs, un formatage (gras / italique, etc.) et des tests unitaires .

Faites votre choix.

Si vous voulez changer les couleurs directement vous-même sans essayer de module

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

D’abord ‘\ x1b [36m’ »pour changer les couleurs à« 36 »puis revenir à la couleur du terminal« 0 ».

pour colorer votre sortie Vous pouvez utiliser des exemples à partir de là:
https://help.ubuntu.com/community/CustomizingBashPrompt

Aussi un Gist pour nodeJs

Par exemple, si vous voulez une partie du texte en rouge, faites simplement console.log avec:

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

Sur cette base, j’ai créé l’extension “colog” pour Node.js. Vous pouvez l’installer en utilisant:

 npm install colog 

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

Selon cette documentation , vous pouvez modifier les couleurs en fonction du type de données de la sortie:

 // 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', ssortingng: '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 ] } 

Celles-ci semblent être des codes d’échappement ANSI SGR, où le premier numéro est le code à émettre avant la sortie et le second numéro est le code à émettre après. Donc, si nous regardons le tableau des codes ANSI SGR sur Wikipedia , vous verrez que la plupart de ces codes commencent par un nombre de 30 à 37 pour définir la couleur de premier plan et se terminent par 39 pour rétablir la couleur de premier plan par défaut.

Donc, une chose que je n’aime pas, c’est la noirceur de certaines d’entre elles. Surtout les dates. Allez-y et essayez la new Date() dans la console. Le magenta foncé sur le noir est vraiment difficile à lire. Changeons cela en magenta clair à la place.

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

Maintenant, quand vous essayez la new Date() , la sortie est beaucoup plus lisible.

Si vous souhaitez définir automatiquement les couleurs lors du lancement du noeud, créez un script qui lance le Repl, comme ceci:

 // 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({}); 

Enregistrez ce fichier (par exemple, init.js ), puis exécutez node.exe init.js Il va définir les couleurs et lancer l’invite de commande node.js.

(Merci à loganfsmyth dans cette réponse pour l’idée de réplique .)

Il s’agit d’une liste de couleurs disponibles (arrière-plan, avant-plan) dans la console avec les actions disponibles (réinitialisation, inversion, …).

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

Utilisez-le comme suit:

  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 

Vous pouvez également installer:

 npm install console-info console-warn console-error --save-dev 

IT vous donnera un résultat plus proche de la console du côté client:

entrer la description de l'image ici

Cette bibliothèque de Sindre Sorhus est la meilleure du moment:

craie

  • Très performant
  • Ssortingng.prototype pas Ssortingng.prototype
  • API expressive
  • Capacité de nidifier des styles
  • Propre et concentré
  • Détection automatique des couleurs
  • Maintenu activement
  • Utilisé par plus de 5500 modules

Pour une alternative populaire aux couleurs qui ne gêne pas les méthodes intégrées de l’object Ssortingng, je vous recommande de vérifier la couleur cli .

Inclut les couleurs et les styles de chaînes tels que gras, italique et souligné.

Pour une comparaison des différents modules de cette catégorie, voir ici .

Pas de bibliothèque, pas de complications, simplement simple:

 console.log(red('Error!')); function red(s) { return '\033[31m' + s; } 

Les codes de couleur sont comme mentionné

 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" 

Par exemple, si vous voulez avoir un texte rouge avec un fond bleu, vous pouvez le faire en Javascript comme ceci:

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

L’ordre des couleurs et des effets ne semble pas être si important, mais n’oubliez pas de réinitialiser les couleurs et les effets à la fin.

J’ai surchargé les méthodes de la console.

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

La sortie est. entrer la description de l'image ici

Un one-liner pratique que j’ai écrit pour les scripts npm qui ne peuvent pas avoir de dépendances:

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

Il existe deux manières de modifier les couleurs d’une console Node.js aujourd’hui.

L’une d’elles consiste à utiliser des bibliothèques à usage général qui peuvent décorer une chaîne de texte avec des balises de couleur, que vous console.log ensuite via la console.log standard.

Les meilleures bibliothèques pour cela aujourd’hui:

  • craie
  • couleurs
  • cli-color

Et dans l’autre sens – patcher les méthodes de la console existante. Une telle bibliothèque – Manakin vous permet de définir automatiquement les couleurs standard pour toutes les méthodes de votre console ( log , warn , error et info ).

Une différence significative par rapport aux bibliothèques de couleurs génériques: il peut définir des couleurs globalement ou localement, tout en conservant une syntaxe et un format de sortie cohérents pour chaque méthode de console Node.js, que vous utilisez ensuite sans avoir à spécifier les couleurs. .

J’ai dû changer la couleur d’arrière-plan de la console en blanc à cause de problèmes oculaires, mais la police est de couleur grise et rend les messages illisibles. Comment puis-je le changer?

Spécifiquement pour votre problème, voici la solution la plus simple:

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

Il définira la couleur noire pour chaque appel console.log dans votre application. Voir plus de codes de couleur .

Couleurs par défaut utilisées par manakin :

entrer la description de l'image ici

Je ne veux pas de dépendance pour cela et seuls ceux-ci ont fonctionné pour moi sur OS X. Tous les autres exemples de réponses ici m’ont donné Octal literal erreurs 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" 

source: https://coderwall.com/p/yphywg/printing-colorful-text-in-terminal-when-run-node-js-script

console de peinture

Journal colorable simple. Soutenir inspecter les objects et la mise à jour d’une seule ligne Ce package ne fait que repeindre la console.

installer

 npm install paint-console 

usage

 require('paint-console'); console.info('console.info();'); console.warn('console.warn();'); console.error('console.error();'); console.log('console.log();'); 

démo

Entré en travers de cette question, et je voulais utiliser certaines couleurs sur stdout sans aucune dépendance. Cela combine certaines des autres grandes réponses ici.

Voici ce que j’ai (Nécessite le noeud v4 ou supérieur)

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

Juste besoin du fichier, puis utilisez-le comme ceci:

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

Les codes de couleur prédéfinis sont disponibles ici

Vous pouvez également utiliser colorworks .

Usage:

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

Pour rendre la vie plus facile, vous pouvez également faire une fonction avec elle.

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

Maintenant tu peux faire comme

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

J’ai créé mon propre module, StyleMe . Je l’ai fait pour que je puisse faire beaucoup avec peu de frappe. Exemple:

 var StyleMe = require('styleme'); StyleMe.extend() // extend the ssortingng prototype console.log("gre{Hello} blu{world}!".styleMe()) // Logs hello world! with 'hello' being green, and 'world' being blue with '!' being normal. 

Il peut aussi être nested:

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

Ou, si vous ne souhaitez pas étendre le prototype de chaîne, vous pouvez choisir l’une des 3 autres options:

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

Refroidisseurs

C’est plutôt bon pour l’utilisation ou l’extension. Vous pouvez utiliser simplement:

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

Ou avec config:

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

Et semble vraiment drôle d’étendre:

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

Module Voir les refroidisseurs

Dans Ubuntu, vous pouvez simplement utiliser les codes de couleur:

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

noeud-colorier

Fournit des fonctions pour imprimer des textes en couleur et également pour effectuer un formatage de texte tel que gras, clignoter, etc.

2017:

manière simple, en ajoutant du temps au message, vous n’avez pas besoin de changer votre code, utilisez Conservez votre console.log (‘msg’) ou console.err (‘erreur’)

 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().toISOSsortingng())] .concat(arguments) ); }; }); 

entrer la description de l'image ici

Ceci est une approche pour Windows 10 (peut-être pour 7) et il modifie le schéma de couleurs (thème) pour cmd, npm terminal lui-même, pas seulement la sortie de la console pour une application particulière.

J’ai trouvé le plugin Windows fonctionnel – Color Tool , qui est probablement développé sous Windows. Une description est disponible sur le lien .

J’ai ajouté le répertoire colortool dans la variable de chemin d’access de l’environnement système et maintenant il est disponible chaque fois que je lance le terminal (invite de commande NodeJs, cmd).

logger / 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.ssortingngify(strg, null, 4); return console.log(colors[key]+strg+'\x1b[0m'); } }); } 

dans votre app.js

 require('./logger')(); 

alors utilisez-le comme:

 console.logBgGreen(" grüner Hintergrund ") 

Si vous utilisez Windows CMD, accédez au Propriétés / Couleurs du terminal (CMD en haut à gauche), puis redéfinissez la valeur RVB de la couleur offensive. Dans mon cas, je crois que c’est le cinquième carré de couleur de la gauche, que j’ai changé pour (222 222 222). Peu importe que le bouton radio actuellement sélectionné affiche Texte d’écran ou Arrière-plan de l’écran lorsque vous ne faites que redéfinir cette couleur «système» spécifique. Une fois la couleur modifiée, n’oubliez pas de sélectionner la couleur de votre choix pour l’arrière-plan ou le texte avant de cliquer sur OK.

Après le changement, tous ces messages rouges de Node (Ember dans mon cas) sont clairement visibles.

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

ce code aide à définir la couleur de premier plan: \ x1b [38; 2; R; G; Bm

cela peut ne pas fonctionner quelque part