在終端機中執行

使用 text run 與 renderToTerminal,在終端機中渲染 App Router 應用程式或單一元件。

text run 在終端機中渲染 App Router 應用程式。版面配置、元件、按鍵對應與路由處理常式皆與瀏覽器共用。輸出採用全彩 ANSI,而非 %c span。

text run              # render ./app at /text run --path /logs # start on another route

按 Ctrl+C 結束。text run 需要 Bun。

text run

text run 匯入 app/ 中的每個檔案,使用記憶體內的歷程記錄掛載 App Router,並以全螢幕繪製。<Link>、useRouter()、notFound() 和 redirect() 不需修改即可運作。

同源的 fetch("/api/...") 呼叫會在同一處理程序內執行你的 route.ts 處理常式,行為與 text dev 提供服務時完全相同。其他網址則透過網路存取。

renderToTerminal

用於單一元件或你自己的 CLI:

cli.tsxtsx
import { renderToTerminal } from "@textjs/app/terminal";import { App } from "./app";const app = await renderToTerminal(<App />);await app.waitUntilExit();

useApp().exit() 會卸載並還原終端機。

選項說明
stdin / stdout預設為 process.stdin / process.stdout
cols / rows固定尺寸(預設:隨終端機調整)
altScreen結束時還原捲動記錄(預設為 true)
mouse滾輪捲動(預設為 true)
exitOnCtrlC預設為 true
fps影格率上限(預設為 60)
patchConsole暫存 console.* 輸出直到結束(預設為 true)
theme / transparent與 createConsoleRoot 相同

輸出

每個影格都會逐列比對差異。只寫入有變更的列,並以同步輸出標記包住,讓支援這些標記的終端機不會顯示繪製到一半的影格。閒置的應用程式不會寫入任何內容。

輸入

原始模式的 stdin 會解析為與瀏覽器產生的相同事件:搭配修飾鍵的方向鍵和功能鍵、Alt 組合鍵、括號貼上、SGR 滑鼠滾輪及 kitty 鍵盤協定。若你需要在其他地方使用,套件也匯出了 TerminalInputParser 和 parseTerminalInput。

差異

功能DevTools終端機
影格節奏約 15 fps最高為 fps
網格大小停駐的主控台終端機視窗
<Image src>透過 canvas 載入使用 pixels
console.log你的影格暫存直到結束
在 GitHub 編輯此頁