Javascript 制作一个对象';s属性在终端中显示为颜色
有可能这样做吗?我想使用npm模块粉笔和颜色来显示属性,这样当我将其JSON.stringify并在终端中显示对象内容时,属性值将显示为我选择的颜色,以便更易于阅读 我的想法是:Javascript 制作一个对象';s属性在终端中显示为颜色,javascript,node.js,Javascript,Node.js,有可能这样做吗?我想使用npm模块粉笔和颜色来显示属性,这样当我将其JSON.stringify并在终端中显示对象内容时,属性值将显示为我选择的颜色,以便更易于阅读 我的想法是: const arrObjects = [ { color: 'red', fruit: 'apple' }, { color: 'pink', fruit: 'dragonfruit' } ]; const coloredProps = arrObjects.map(f
const arrObjects = [
{
color: 'red',
fruit: 'apple'
},
{
color: 'pink',
fruit: 'dragonfruit'
}
];
const coloredProps = arrObjects.map(fruit => {
Object.defineProperty(fruit, chalk.yellow.bold('family'), {
value: 'healthy',
writeable: true,
configurable: true,
enumerable: true
});
});
console.log(JSON.stringify(arrObjects, null, 2));
因此,它将以黄色显示新属性族
这看起来像是我已经做到了,但问题是在终端中,由于JSON.stringify,它将属性显示为unicode。有没有办法通过这个考试
以下是我的结果:
您是否尝试过将ansi实用程序用于粉笔
不要将ANSI转义放在对象的值或键中。这是混合显示和数据,这只会给你带来问题 JSON编码器通常使用终端仿真器无法识别的
\uxxx
表示形式对不可打印或UTF-8字符进行转义(您需要由\x1b
或\u001b
表示的实际字符,而不是转义表示形式)
您的代码实际上是打印出console.log('\\u001b')
——请注意双斜杠。终端仿真器无法识别这一点
你试过以下方法吗
var util = require('util');
console.log(util.inspect(myObject, {colors:true}));
可能必须拆分所有行,分别记录每行,并解析属性值,以确定它是否需要颜色免责声明:我是粉笔项目的维护者。