如何在node.js中更改终端颜色

时间:2015-09-09 08:08:31

标签: node.js colors terminal

如何在节点js中设置终端字体颜色。我发现了一些模块,但颜色有限,我想使用任何颜色。

例如。 这样的事情。

console.log("text", "#87a213");

这个question的答案是3个模块,但在这些模块中,颜色是有限的。我需要用任何颜色打印。
 谢谢。

3 个答案:

答案 0 :(得分:2)

You can also use a super simple mixin to add colors support to String prototype :

// Node String Colors Support (https://git.io/colors)
// Usage console.log("Hello!".green())
const _c = require('util').inspect.colors;
Object.keys(_c).forEach(c =>String.prototype[c] = s =>`\x1b[${_c[c][0]}m${s}\x1b[${_c[c][1]}m`);

Alternative with no util dependency: (not recommended)

// Node String Colors Support. (no util version) (https://git.io/colors)
// Usage console.log("Hello!".green())
const _c = {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]};
Object.keys(_c).forEach(c =>String.prototype[c] = s =>`\x1b[${_c[c][0]}m${s}\x1b[${_c[c][1]}m`); 

Global version, if you don't want to alter String prototype (this is much much safer)

// Node String Colors Support. (global version) (https://git.io/colors)
// Usage console.log(green("Hello world!")
const _c = require('util').inspect.colors;
Object.keys(_c).forEach(c =>global[c] = s =>`\x1b[${_c[c][0]}m${s}\x1b[${_c[c][1]}m`);

答案 1 :(得分:1)

您可以使用ansi-256-colors包。但它不支持任何颜色。但它支持多种颜色。

安装:

npm install --save ansi-256-colors

使用:

console.log(colors.fg.getRgb(2,3,4) + colors.bg.getRgb(4,4,4) + 'Hello world!' + colors.reset);

答案 2 :(得分:0)

我一直在使用colors https://www.npmjs.com/package/colors这个非常容易使用的包,因为它扩展了String,因此对于每个字符串,您只需.red

var colors = require('colors');

console.log('hello'.green); // outputs green text 
console.log('i like cake and pies'.underline.red) // outputs red underlined text 
console.log('inverse the color'.inverse); // inverses the color 
console.log('OMG Rainbows!'.rainbow); // rainbow 
console.log('Run the trap'.trap); // Drops the bass