说我有这个:

//exp.js
const chalk = require('chalk');
console.log(chalk.red('foobar'));


然后在命令行运行:

node exp.js | cat


在我见过的所有情况下,颜色都不会出现。有人知道为什么吗?有没有一种方法可以显示颜色?难道我做错了什么?

我唯一的猜测是,当进程挂接到管道中时,chalk库会“关闭”字符串样式吗?

例如:

node.js - 使用粉笔NPM模块的终端样式(控制字符)-LMLPHP

最佳答案

根据the fine manual

$ node exp.js --color | cat
$ env FORCE_COLOR=1 node exp.js | cat


要么:

//exp.js
process.env.FORCE_COLOR = '1';
const chalk = require('chalk');
console.log(chalk.red('foobar'));

07-26 04:41