有可能这样做吗?我想使用npm模块粉笔和颜色属性,以便当我JSON.stringify它并在终端中显示对象内容时,属性值将显示为我选择的颜色,以便更容易阅读。
我在想这样的事情:
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));
因此它会以黄色显示新属性 family
这几乎就像我到达那里但问题是在终端中它因为JSON.stringify而将属性显示为unicode。有没有办法通过这个?
这是我的结果:
答案 0 :(得分:0)
不要在您的对象中放置ANSI转义符号'价值观或关键。这是混合显示和数据,这只会给你带来麻烦。
JSON编码器通常使用\uXXXX
表示来转义不可打印或UTF-8字符,终端模拟器无法识别这些表示(您需要{em>实际的字符表示{ {1}}或\x1b
,而不是转义的代表。)
您的代码正在执行的操作基本上是打印\u001b
- 请注意双斜杠。终端模拟器不会认识到这一点。
您是否尝试过以下操作?
console.log('\\u001b')
答案 1 :(得分:-1)
你有没有试过strip-ansi实用工具用于粉笔