如何更改node.js';s控制台字体颜色?

如何更改node.js';s控制台字体颜色?,node.js,colors,console,Node.js,Colors,Console,由于眼睛的问题,我不得不将控制台的背景颜色改为白色,但字体是灰色的,这使消息无法阅读。如何更改它?Node.js中有多个用于格式化控制台文本的包。最受欢迎的是: 15k星 290K颗星星 500颗星 用法: 粉笔: const chalk = require('chalk'); console.log(chalk.red('Text in red')); const colors = require('colors'); console.log('Text in red'.red); c

由于眼睛的问题,我不得不将控制台的背景颜色改为白色,但字体是灰色的,这使消息无法阅读。如何更改它?

Node.js中有多个用于格式化控制台文本的包。最受欢迎的是:

  • 15k星
  • 290K颗星星
  • 500颗星
用法: 粉笔:

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

颜色:

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

CLI-COLOR:

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

许多人已经注意到他们不赞成
颜色
改变字符串原型。如果您希望原型不受影响,请使用以下代码:

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

要为输出着色,可以使用以下示例:

也是

例如,如果希望部分文本为红色,只需使用以下命令执行console.log:

"\033[31m this will be red \033[91m and this will be normal"
基于此,我为Node.js创建了“colog”扩展。您可以使用以下方式安装它:

npm install colog
回购和npm: 根据,您可以根据输出的数据类型更改颜色:

// 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转义码,其中第一个数字是输出前要发出的代码,第二个数字是输出后要发出的代码。因此,如果我们看一下,您会看到,其中大多数以数字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';
现在,当您尝试
newdate()
时,输出的可读性要高得多

如果要在启动节点时自动设置颜色,请创建启动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({});
console.log("\x1b[2m", "\x1b[31m", "\x1b[44m", "Sample Text", "\x1b[0m");
colorStringLog(Color.FgYellow, "Some Yellow text to console log");

console.log([
  colorString(Color.FgRed, "red"),
  colorString(Color.FgGreen, "green"),
  colorString(Color.FgBlue, "blue"),
].join(", "));
保存此文件(例如,
init.js
),然后运行
node.exe init.js
。它将设置颜色并启动node.js命令提示符


(多亏了loganfsmyth的repl思想。)

对于一个流行的替代方案,它不会干扰String对象的内置方法,我建议签出

包括颜色和可链接样式,如粗体、斜体和下划线


有关此类别中各种模块的比较,请参阅。

Sindre Sorhus的此库是目前最好的:

  • 高性能
  • 不扩展
    String.prototype
  • 表现型API
  • 嵌套样式的能力
  • 干净利落
  • 自动检测颜色支持
  • 积极维护
  • 由5500多个模块使用
    • 它非常适合使用或扩展。您可以简单地使用:

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

      如果您想不通过模块直接更改颜色,请尝试

      console.log('\x1b[36m', 'sometext' ,'\x1b[0m');
      
      首先
      \x1b[36m
      将颜色更改为
      36
      ,然后返回到终端颜色
      0


      如果您使用的是Windows CMD,请转到终端属性/颜色(CMD左上角),然后重新定义攻击性颜色的RGB值。在我的情况下,我相信这是从左侧开始的第五个颜色方块,我将其更改为(22222)。当前选择的单选按钮是否显示屏幕文本或屏幕背景并不重要,因为您只需重新定义特定的“系统”颜色。更改颜色后,请不要忘记在单击“确定”之前重新选择背景或文本的首选颜色

      更改后,来自Node(我的例子是Ember)的所有红色消息都清晰可见。

      简单的彩色日志。支持检查对象和单行更新 这个软件包只是重新绘制控制台

      安装

      npm install paint-console
      
      用法

      require('paint-console');
      
      console.info('console.info();');
      console.warn('console.warn();');
      console.error('console.error();');
      console.log('console.log();');
      
      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"
      

      您也可以使用

      用法:

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

      遇到这个问题,想在标准输出上使用一些没有任何依赖性的颜色。这里结合了其他一些很好的答案

      这是我得到的。(需要节点v4或更高版本)

      只需要文件,然后像这样使用它:

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

      预定义的颜色代码在ubuntu中可用

      ,您只需使用颜色代码即可:

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


      提供以彩色打印文本的功能,以及进行文本格式设置,如粗体、闪烁等。

      现在有两种方法可以查看Node.js控制台的颜色变化

      一种是通过通用库,它可以用颜色标签装饰文本字符串,然后通过标准的
      控制台.log
      输出

      今天的顶级图书馆:

      另一种方法是修补现有的控制台方法。其中一个库允许您为所有控制台方法自动设置标准颜色(
      log
      warn
      error
      info

      与通用颜色库的一个显著区别是,它可以全局或本地设置颜色,同时为每个Node.js控制台方法保持一致的语法和输出格式,然后使用这些方法而无需指定颜色,因为它们都是自动设置的

      由于眼睛问题,我不得不将控制台背景颜色更改为白色,但字体是灰色的,这会使邮件无法阅读。我如何更改它

      针对您的问题,以下是最简单的解决方案:

      var con = require('manakin').global;
      con.log.color = 30; // Use black color for console.log
      
      它将为应用程序中的每个
      控制台.log
      调用设置黑色。请参阅

      使用的默认颜色:

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

      没有库,没有并发症,只是简单:

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

      这是控制台中可用颜色(背景和前景)的列表,以及一些可用操作(如重置、反转等)

      const colors={
      重置:“\x1b[0m”,
      
      require('./logger')();
      
      console.logBgGreen(" grüner Hintergrund ")
      
      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);
      
      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(", "));
      
      // 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}`)