使用 chalk NPM 模块的终端样式(控制字符)

Terminal styling (control chars) using the chalk NPM module

假设我有这个:

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

然后我在命令行运行:

node exp.js | cat

在我见过的所有情况下,颜色都不会出现。有谁知道为什么?有没有办法让颜色显示出来?我做错了什么吗?

我唯一的猜测是 chalk 库 "turns off" 当进程连接到管道时的字符串样式?

例如:

根据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'));