Node.js TTY

2022-02-26 10:32 更新
穩(wěn)定性: 2 - 不穩(wěn)定

Node.js的tty模塊包含tty.ReadStreamtty.WriteStream類,多數(shù)情況下,你不必直接使用這個模塊,訪問該模塊的方法如下:

const tty = require('tty');

當(dāng)node檢測到自己正運(yùn)行于TTY上下文時,process.stdin將會是一個tty.ReadStream實(shí)例,并且process.stdout將會是tty.WriteStream實(shí)例。檢測 node是否運(yùn)行在TTY上下文的好方法是檢測process.stdout.isTTY

$ node -p -e "Boolean(process.stdout.isTTY)"
true
$ node -p -e "Boolean(process.stdout.isTTY)" | cat
false

tty.isatty(fd)

如果fd和終端相關(guān)聯(lián)返回true,否則返回false。

tty.setRawMode(mode)

已經(jīng)拋棄。使用tty.ReadStream#setRawMode()(比如process.stdin.setRawMode())替換。

Class: ReadStream

net.Socket的子類,表示tty的可讀部分。通常情況,在任何node程序里(僅當(dāng)isatty(0)為true時),process.stdintty.ReadStream的唯一實(shí)例。

rs.isRaw

Boolean值,默認(rèn)為false。它代表當(dāng)前tty.ReadStream實(shí)例的"raw"狀態(tài)。

rs.setRawMode(mode)

mode需是truefalse。它設(shè)定tty.ReadStream屬性為原始設(shè)備或默認(rèn)。isRaw將會設(shè)置為結(jié)果模式。

Class: WriteStream

net.Socket的子類,代表tty的可寫部分。通常情況下,process.stdouttty.WriteStream唯一實(shí)例(僅當(dāng)isatty(1)為true時)。

ws.columns

TTY當(dāng)前擁有的列數(shù)。觸發(fā)"resize"事件時會更新這個值。

ws.rows

TTY當(dāng)前擁有的行數(shù)。觸發(fā)"resize"事件時會更新這個值。

Event: 'resize'

function () {}

行或列變化時會觸發(fā)refreshSize()事件。

process.stdout.on('resize', function() {
  console.log('screen size has changed!');
  console.log(process.stdout.columns + 'x' + process.stdout.rows);
});


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號