【问题标题】:NodeJS: Print colored text from a JSON objectNodeJS:从 JSON 对象打印彩色文本
【发布时间】:2021-05-12 18:06:39
【问题描述】:

我最近做了一个名为 ani-cli 的 CLI 项目,我正在处理颜色配置

我想读取一个包含终端颜色代码的 JSON 对象,例如
\\033[33m\\x1b[33m(我放了双反斜杠,因为如果我放单,JSON 解析器会抛出错误而不解析)

我编写了一个简单的代码来读取 JSON 对象

let colors = fs.readFile("colors.json", "utf8", (err, data) => {
    if (err){
        return null;
    } else {
        let obj = JSON.parse(data);
        let title = obj["title"];
        // console.log(title.toString() + "Hi");
        console.log(title + "HI");
    }
})

当我运行代码时,它不打印颜色,只打印文本

Screenshot of the running program

【问题讨论】:

    标签: javascript node.js json colors


    【解决方案1】:

    由于字符串转义在 JSON 文件中的工作方式,仅使用 JSON 文件会很困难。

    如果您确实想将颜色文件分开,我建议您将其放在单独的 js 文件中:

    module.exports = {
      reset: "\x1b[0m",
    
      title: "\x1b[33m",
      red: "\x1b[31m",
      green: "\x1b[32m",
    };
    

    在您的主 js 文件中,您可以要求。模块甚至摇动模块以获得您想要的:

    const { title, reset, red, green } = require("./colors");
    
    console.log(title, "HI!", reset);
    console.log("I am of normal color");
    console.log(red, "I am red", reset);
    console.log(green, "I am green", reset);
    

    这还允许您在需要时使用动态颜色键:

    const colors = require("./colors");
    const colorsArr = ['red', 'title', 'green'];
    
    for (color of colorsArr) {
        console.log(colors[color], `I am color: ${color}`, colors.reset)
    }
    

    永远记得重置你的颜色! :)

    const { reset } = require("./colors");
    console.log(reset);
    

    【讨论】:

    • 谢谢,它使用单独的 javascript 文件 ?
    猜你喜欢
    • 2023-04-06
    • 1970-01-01
    • 2012-09-28
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    • 2019-03-22
    相关资源
    最近更新 更多