【发布时间】:2011-10-28 04:05:44
【问题描述】:
我正在为我的一个程序编写命令行界面,如果合适的话,我想使用winston 的彩色输出(输出是一个终端,它没有重定向到文件)。
在 bash 中,它可以通过 -t 测试来完成,正如 SO answer 正确所说的那样。但我正在寻找 node.js 替代品来测试它。
【问题讨论】:
标签: command-line node.js command-line-interface
我正在为我的一个程序编写命令行界面,如果合适的话,我想使用winston 的彩色输出(输出是一个终端,它没有重定向到文件)。
在 bash 中,它可以通过 -t 测试来完成,正如 SO answer 正确所说的那样。但我正在寻找 node.js 替代品来测试它。
【问题讨论】:
标签: command-line node.js command-line-interface
与您链接到的 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');
}
【讨论】:
process.stdout.isTTY