命令行 – 在node.js中测试实际输出是否为终端

我正在为我的一个程序编写一个命令行界面,如果适合,我想使用 winston彩色输出(输出一个终端,而不是重定向一个文件).

在bash中,可以使用-t测试完成,因为这个SO answer正确地说.但是我正在寻找用于测试这个的node.js替代方法.

解决方法

与您链接到的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');
}

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...