为什么Node.js包不能在Windows中输出正确的格式?

为什么Node.js包不能在Windows中输出正确的格式?,node.js,terminal,console,chalk,Node.js,Terminal,Console,Chalk,在文档中,仅暗示此库在Windows中无法正常工作: 如果您使用Windows,请帮自己一个忙,使用Windows终端 而不是cmd.exe 我认为这是不可接受的,因为现代开发的基本工具是带有自己终端的IDE,所以终端突出显示库不能依赖于特定的终端 从这里,我们至少有三个问题: 为什么粉笔不能正确输出字体/背景色 如何在指定的任何终端中输出背景或字体颜色 如果Chalk不能做到这一点,那么哪个Node.js实用程序可以做到 我知道我不能在一个问题里问所有的问题,所以当前的主题是为什么粉笔不能输出

在文档中,仅暗示此库在Windows中无法正常工作:

如果您使用Windows,请帮自己一个忙,使用Windows终端 而不是cmd.exe

我认为这是不可接受的,因为现代开发的基本工具是带有自己终端的IDE,所以终端突出显示库不能依赖于特定的终端

从这里,我们至少有三个问题:

  • 为什么粉笔不能正确输出字体/背景色
  • 如何在指定的任何终端中输出背景或字体颜色
  • 如果Chalk不能做到这一点,那么哪个Node.js实用程序可以做到
  • 我知道我不能在一个问题里问所有的问题,所以当前的主题是为什么粉笔不能输出指定的颜色

    console.log(
    Chalk.bgRed.bold(“错误”)+“”+Chalk.bgRedBright(“短标题”)+“\n”+
    粉笔。红色。粗体(“长标题。超过2个单词”)+“\n”+
    粉笔.红白(“说明”)+“\n”
    );
    console.log(
    Chalk.bgYellow.bold(“警告”)+“”+Chalk.bgYellowBright(“短标题”)+“\n”+
    粉笔。黄色。粗体(“长标题。超过2个单词”)+“\n”+
    粉笔。黄亮(“说明”)+“\n”
    );
    console.log(
    Chalk.bgGreen.bold(“成功”)+“”+Chalk.bgGreenBright(“短标题”)+“\n”+
    粉笔。绿色。粗体(“长标题。超过2个单词”)+“\n”+
    粉笔.greenBright(“说明”)+“\n”
    );
    console.log(
    Chalk.bgBlue.bold(“信息”)+“”+Chalk.bgblublewright(“短标题”)+“\n”+
    粉笔。蓝色。粗体(“长标题。超过2个单词”)+“\n”+
    粉笔。右(“说明”)+“\n”
    );
    console.log(
    Chalk.bgCyan.bold(“信息”)+“”+Chalk.bgCyanBright(“短标题”)+“\n”+
    粉笔。青色。粗体(“长标题。超过2个单词”)+“\n”+
    粉笔.cyanBright(“说明”)+“\n”
    );
    console.log(
    Chalk.bgmenta.bold(“信息”)+“”+Chalk.bgmentabright(“短标题”)+“\n”+
    粉笔。洋红色。粗体(“长标题。超过2个单词”)+“\n”+
    粉笔。洋红色(“说明”)+“\n”
    );
    console.log(
    Chalk.bgWhite.bold(“信息”)+“”+Chalk.bgWhiteBright(“短标题”)+“\n”+
    粉笔。白色。粗体(“长标题。超过2个单词”)+“\n”+
    粉笔.whiteBright(“说明”)+“\n”
    );
    
    IntellIJ IDEA,Monokai颜色主题:

  • 对于每个
    cosole.log()
    ,“长标题。超过2个单词。”和“说明”具有相同的颜色
  • 一些
    bg**
    s比
    bg**亮
  • 已忽略除白色以外的所有
    bold
    s
  • 字体颜色已在定义背景色的位置自动设置。我没有问这个问题,有时字体几乎不可读
  • 管理者 稍微好一点,但大部分问题还没有解决

    默认Windows终端 与上述各项相比,还算不错


    粉笔无法在
    cmd.exe
    中显示颜色,因为它依赖于ANSI转义序列,而这在
    cmd.exe
    中根本不受开箱即用的支持。在较新版本的Windows10中,这似乎是可能的,但必须被激活。还有一些工具可以在旧版本上使用。你可以在这个问题中找到很多有用的信息:


    关于哪种工具可以用于在任何终端中输出颜色,还有两个问题:我认为粉笔已经是一个非常好的库,它已经使用ANSI标准来确保兼容性。因此,如果终端不支持ANSI,那么终端就是瓶颈。我不知道还有其他更兼容的技术。

    这能解决您的问题吗@AlhassanRaad,对不起,我看不到我问题的直接答案。我的问题是关于粉笔,而不是Git Bash。似乎您的问题只发生在Git Bash上。@AlhassanRaad,为了避免将来的误解,我将从问题中删除Git Bash部分。谢谢您的回答!正如我从你们提到的问题的评论和答案中了解到的,最新的Windows10支持ANSI转义序列。所以,不服从我的代码的输出意味着对ANSI转义序列的支持还不是完美的。。。