首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么Node.js包不能在Windows中输出正确的格式?

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

Stack Overflow用户
提问于 2020-12-31 02:36:51
回答 1查看 1.7K关注 0票数 1

粉笔文档中,只是暗示这个库在Windows中不能正常工作:

如果你在Windows上,帮你自己一个忙,使用Windows终端而不是cmd.exe。

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

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

  1. 为什么Chalk不能正确输出字体/背景色?
  2. 如何在指定的终端中输出背景或字体颜色?
  3. 如果Chalk做不到,那么哪些Node.js实用程序可以呢?

我知道我不能在一个问题中问以上所有的问题,所以当前的主题是为什么Chalk不能输出指定的颜色。

代码语言:javascript
运行
复制
console.log(
    Chalk.bgRed.bold(" Error ") + "   " + Chalk.bgRedBright(" Short title ") + "\n" +
    Chalk.red.bold("Long title. More than 2 words.") + "\n" +
    Chalk.redBright("Description") + "\n"
);

console.log(
    Chalk.bgYellow.bold(" Warning ") + "   " + Chalk.bgYellowBright(" Short title ") + "\n" +
    Chalk.yellow.bold("Long title. More than 2 words.") + "\n" +
    Chalk.yellowBright("Description") + "\n"
);

console.log(
    Chalk.bgGreen.bold(" Success ") + "   " + Chalk.bgGreenBright(" Short title ") + "\n" +
    Chalk.green.bold("Long title. More than 2 words.") + "\n" +
    Chalk.greenBright("Description") + "\n"
);

console.log(
    Chalk.bgBlue.bold(" Info ") + "   " + Chalk.bgBlueBright(" Short title ") + "\n" +
    Chalk.blue.bold("Long title. More than 2 words.") + "\n" +
    Chalk.blueBright("Description") + "\n"
);

console.log(
    Chalk.bgCyan.bold(" Info ") + "   " + Chalk.bgCyanBright(" Short title ") + "\n" +
    Chalk.cyan.bold("Long title. More than 2 words.") + "\n" +
    Chalk.cyanBright("Description") + "\n"
);

console.log(
    Chalk.bgMagenta.bold(" Info ") + "   " + Chalk.bgMagentaBright(" Short title ") + "\n" +
    Chalk.magenta.bold("Long title. More than 2 words.") + "\n" +
    Chalk.magentaBright("Description") + "\n"
);

console.log(
    Chalk.bgWhite.bold(" Info ") + "   " + Chalk.bgWhiteBright(" Short title ") + "\n" +
    Chalk.white.bold("Long title. More than 2 words.") + "\n" +
    Chalk.whiteBright("Description") + "\n"
);

IntellIJ创意,Monokai色彩主题:

  1. 对于每一个cosole.log(),“长标题,超过两个字。”“描述”的颜色是一样的。
  2. 有些bg**bg**Bright亮!
  3. 除白色以外的所有bolds都被忽略了。
  4. 字体颜色已经在背景颜色定义的地方自动设置。我没有问这个,而且有时字体几乎是不可读的。

卡姆德

好点了,但大部分问题都还没解决。

默认Windows终端

和上面的比较不算太糟。

EN

回答 1

Stack Overflow用户

发布于 2021-01-08 14:36:25

粉笔不能在cmd.exe中显示颜色,因为它依赖于ANSI转义序列,这在cmd.exe中根本不支持开箱即用。在较新版本的Windows 10中,这似乎是可能的,但必须被激活。还有一些工具使得它可以在旧版本上使用。您可以在以下问题中找到许多有用的信息:如何使win32控制台识别ANSI/ to 100转义序列?

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65515985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档