Node.js v21.7.2 文件
- Node.js v21.7.2
-
► 目錄
- TTY
- 類別:
tty.ReadStream
- 類別:
tty.WriteStream
- 事件:
'resize'
writeStream.clearLine(dir[, callback])
writeStream.clearScreenDown([callback])
writeStream.columns
writeStream.cursorTo(x[, y][, callback])
writeStream.getColorDepth([env])
writeStream.getWindowSize()
writeStream.hasColors([count][, env])
writeStream.isTTY
writeStream.moveCursor(dx, dy[, callback])
writeStream.rows
- 事件:
tty.isatty(fd)
- 類別:
- TTY
-
► 索引
- 斷言測試
- 非同步內容追蹤
- 非同步掛鉤
- 緩衝區
- C++ 外掛程式
- 使用 Node-API 的 C/C++ 外掛程式
- C++ 嵌入式 API
- 子程序
- 叢集
- 命令列選項
- 主控台
- Corepack
- 加密
- 偵錯程式
- 已棄用的 API
- 診斷頻道
- DNS
- 網域
- 錯誤
- 事件
- 檔案系統
- 全域變數
- HTTP
- HTTP/2
- HTTPS
- 檢查工具
- 國際化
- 模組:CommonJS 模組
- 模組:ECMAScript 模組
- 模組:
node:module
API - 模組:套件
- 網路
- 作業系統
- 路徑
- 效能掛鉤
- 權限
- 程序
- Punycode
- 查詢字串
- 讀取列
- REPL
- 報告
- 單一可執行應用程式
- 串流
- 字串解碼器
- 測試執行器
- 計時器
- TLS/SSL
- 追蹤事件
- TTY
- UDP/資料報
- URL
- 公用程式
- V8
- VM
- WASI
- 網路加密 API
- 網路串流 API
- 工作執行緒
- Zlib
- ► 其他版本
- ► 選項
TTY#
原始碼: lib/tty.js
node:tty
模組提供 tty.ReadStream
和 tty.WriteStream
類別。在多數情況下,無需或無法直接使用此模組。不過,可以使用以下方式存取:
const tty = require('node:tty');
當 Node.js 偵測到它與連接的文字終端機(「TTY」)一起執行時,process.stdin
預設會初始化為 tty.ReadStream
的執行個體,而 process.stdout
和 process.stderr
預設會是 tty.WriteStream
的執行個體。判斷 Node.js 是否在 TTY 環境中執行的首選方法是檢查 process.stdout.isTTY
屬性的值是否為 true
$ node -p -e "Boolean(process.stdout.isTTY)"
true
$ node -p -e "Boolean(process.stdout.isTTY)" | cat
false
在多數情況下,應用程式不應手動建立 tty.ReadStream
和 tty.WriteStream
類別的執行個體。
類別:tty.ReadStream
#
- 擴充:<net.Socket>
表示 TTY 的可讀取端。在正常情況下,process.stdin
將會是 Node.js 程序中唯一的 tty.ReadStream
執行個體,不應再建立其他執行個體。
readStream.isRaw
#
如果 TTY 目前設定為以原始裝置模式運作,則為 true
的 boolean
。
即使終端機以原始模式運作,這個旗標在程序啟動時仍會永遠為 false
。它的值會隨著後續呼叫 setRawMode
而改變。
readStream.isTTY
#
對 tty.ReadStream
執行個體永遠為 true
的 boolean
。
readStream.setRawMode(mode)
#
mode
<boolean> 如果為true
,則設定tty.ReadStream
以原始裝置模式運作。如果為false
,則設定tty.ReadStream
以預設模式運作。readStream.isRaw
屬性會設定為結果模式。- 傳回:<this> 讀取串流執行個體。
允許設定 tty.ReadStream
,使其以原始裝置模式運作。
在原始模式下,輸入永遠以逐字元方式提供,不包含修飾鍵。此外,終端機對字元的特殊處理全部停用,包括輸入字元的迴音。在此模式下,Ctrl+C 將不再造成 SIGINT
。
類別:tty.WriteStream
#
- 擴充:<net.Socket>
代表 TTY 的可寫入端。在正常情況下,process.stdout
和 process.stderr
會是為 Node.js 程序建立的唯一 tty.WriteStream
執行個體,而且沒有理由建立其他執行個體。
事件:'resize'
#
'resize'
事件會在 writeStream.columns
或 writeStream.rows
屬性任一變更時發出。呼叫時不會傳遞任何參數給監聽器回呼函式。
process.stdout.on('resize', () => {
console.log('screen size has changed!');
console.log(`${process.stdout.columns}x${process.stdout.rows}`);
});
writeStream.clearLine(dir[, callback])
#
dir
<number>-1
:從游標往左1
:從游標往右0
:整行
callback
<Function> 在作業完成後呼叫。- 傳回:<boolean>
false
如果串流希望呼叫碼在繼續寫入其他資料前等待發出'drain'
事件;否則為true
。
writeStream.clearLine()
清除此 WriteStream
的目前行,方向由 dir
識別。
writeStream.clearScreenDown([callback])
#
callback
<Function> 在作業完成後呼叫。- 傳回:<boolean>
false
如果串流希望呼叫碼在繼續寫入其他資料前等待發出'drain'
事件;否則為true
。
writeStream.clearScreenDown()
從目前游標向下清除此 WriteStream
。
writeStream.columns
#
一個指定 TTY 目前欄位的 數字
。當發出 'resize'
事件時,此屬性會更新。
writeStream.cursorTo(x[, y][, callback])
#
x
<數字>y
<數字>callback
<Function> 在作業完成後呼叫。- 傳回:<boolean>
false
如果串流希望呼叫碼在繼續寫入其他資料前等待發出'drain'
事件;否則為true
。
writeStream.cursorTo()
將此 WriteStream
的游標移至指定位置。
writeStream.getColorDepth([env])
#
傳回
1
表示 2,4
表示 16,8
表示 256,24
表示支援 16,777,216 色。
使用此方法來判斷終端支援哪些顏色。由於終端中顏色的特性,可能會出現假陽性或假陰性。這取決於處理程序資訊和可能謊報所使用的終端的環境變數。可以傳入 env
物件來模擬特定終端的用法。這有助於檢查特定環境設定的行為方式。
若要強制執行特定的顏色支援,請使用下列其中一項環境設定。
- 2 色:
FORCE_COLOR = 0
(停用顏色) - 16 色彩:
FORCE_COLOR = 1
- 256 色彩:
FORCE_COLOR = 2
- 16,777,216 色彩:
FORCE_COLOR = 3
也可以透過使用 NO_COLOR
和 NODE_DISABLE_COLORS
環境變數來停用色彩支援。
writeStream.getWindowSize()
#
- 傳回:<number[]>
writeStream.getWindowSize()
傳回對應這個 WriteStream
的 TTY 大小。陣列類型為 [numColumns, numRows]
,其中 numColumns
和 numRows
分別代表對應 TTY 中的欄數和列數。
writeStream.hasColors([count][, env])
#
count
<integer> 要求的色彩數量(最少 2)。預設值:16。env
<物件> 包含要檢查的環境變數的物件。這能模擬特定終端的用法。預設:process.env
。- 傳回:<boolean>
如果 writeStream
支援的色彩數量至少與 count
中提供的數量相同,則傳回 true
。最低支援數量為 2(黑白)。
這與 writeStream.getColorDepth()
中所述的假陽性和假陰性相同。
process.stdout.hasColors();
// Returns true or false depending on if `stdout` supports at least 16 colors.
process.stdout.hasColors(256);
// Returns true or false depending on if `stdout` supports at least 256 colors.
process.stdout.hasColors({ TMUX: '1' });
// Returns true.
process.stdout.hasColors(2 ** 24, { TMUX: '1' });
// Returns false (the environment setting pretends to support 2 ** 8 colors).
writeStream.isTTY
#
一個永遠為 true
的 boolean
。
writeStream.moveCursor(dx, dy[, callback])
#
dx
<number>dy
<number>callback
<Function> 在作業完成後呼叫。- 傳回:<boolean>
false
如果串流希望呼叫碼在繼續寫入其他資料前等待發出'drain'
事件;否則為true
。
writeStream.moveCursor()
將這個 WriteStream
的游標相對於其目前位置移動。
writeStream.rows
#
指定 TTY 目前所具有的列數的 數字
。此屬性會在發出 'resize'
事件時更新。
tty.isatty(fd)
#
如果給定的 fd
與 TTY 關聯,則 tty.isatty()
方法會傳回 true
;如果沒有關聯,則傳回 false
,包括 fd
不是非負整數時。