微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

命令行 – 在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');
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐