我正在为我的一个程序编写一个命令行界面,如果合适的话,我想使用winston的彩色输出(输出是终端,而不是重定向到文件)。
在bash中,可以使用-t
测试完成,因为SO answer正确地说明了这一点。但我正在寻找node.js替代方案来测试它。
答案 0 :(得分:24)
与你链接到的bash示例类似,Node有'tty'模块来处理这个问题。
要检查输出是否已重定向,可以使用'isatty'方法。 文档:http://nodejs.org/docs/v0.5.0/api/tty.html#tty.isatty
例如,检查stdout是否被重定向:
var tty = require('tty');
if (tty.isatty(process.stdout.fd)) {
console.log('not redirected');
}
else {
console.log('redirected');
}
在新版本的Node(从0.12.0开始)中,API在stdout
上提供了一个标志,因此您可以这样做:
if (process.stdout.isTTY) {
console.log('not redirected');
}
else {
console.log('redirected');
}