有什么方法可以检测我的Node.js脚本的输出是否被管道传输到终端以外的其他东西?
我想要一些方法来检测是否发生这种情况:
node myscript.js | less
或者如果发生这种情况:
node myscript.js
最简单的方法是process.stdout.isTTY
(0.8 +):
$ node -p -e "Boolean(process.stdout.isTTY)" true $ node -p -e "Boolean(process.stdout.isTTY)" | cat false
(来自官方文档的例子)
或者,您可以使用该tty
模块进行更精细的控制:
if (require('tty').isatty(1)) { // terminal }