gpt4 book ai didi

command-line - 在 node.js 中测试实际输出是否为终端

转载 作者:IT老高 更新时间:2023-10-28 22:08:14 27 4
gpt4 key购买 nike

我正在为我的一个程序编写命令行界面,我想使用 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');
}

关于command-line - 在 node.js 中测试实际输出是否为终端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7080458/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com