Chạy trong terminal

Render ứng dụng App Router hoặc một component trong terminal bằng text run và renderToTerminal.

text run render ứng dụng App Router trong terminal. Layout, component, keymap và route handler dùng chung với trình duyệt. Đầu ra là ANSI truecolor thay cho các span %c.

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

Nhấn Ctrl+C để thoát. text run cần Bun.

text run

text run nhập mọi tệp trong app/, mount App Router với lịch sử trong bộ nhớ và vẽ toàn màn hình. <Link>, useRouter(), notFound() và redirect() hoạt động như cũ.

Các lệnh gọi fetch("/api/...") cùng nguồn chạy handler route.ts của bạn trong cùng tiến trình, đúng như cách text dev phục vụ chúng. Các URL khác đi qua mạng.

renderToTerminal

Dành cho một component riêng lẻ hoặc CLI của bạn:

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

useApp().exit() unmount và khôi phục terminal.

Tùy chọnMô tả
stdin / stdoutMặc định là process.stdin / process.stdout
cols / rowsKích thước cố định (mặc định: theo terminal)
altScreenKhôi phục lịch sử cuộn khi thoát (mặc định true)
mouseCuộn bằng con lăn (mặc định true)
exitOnCtrlCMặc định true
fpsGiới hạn frame (mặc định 60)
patchConsoleGiữ console.* cho đến khi thoát (mặc định true)
theme / transparentNhư trong createConsoleRoot

Đầu ra

Mỗi frame được so sánh từng dòng để tìm thay đổi. Chỉ các dòng thay đổi mới được ghi, bao quanh bằng dấu đánh dấu đầu ra đồng bộ để terminal có hỗ trợ không bao giờ hiển thị frame mới vẽ một nửa. Ứng dụng không hoạt động thì không ghi gì.

Đầu vào

stdin ở chế độ raw được phân tích thành các sự kiện giống như trình duyệt tạo ra: phím mũi tên và phím chức năng kèm phím bổ trợ, tổ hợp Alt, dán có dấu phân cách, con lăn chuột SGR và giao thức bàn phím kitty. TerminalInputParser và parseTerminalInput được xuất để bạn dùng ở nơi khác nếu cần.

Khác biệt

Tính năngDevToolsTerminal
Nhịp frame~15 fpsTối đa fps
Kích thước lướiConsole gắn trong cửa sổCửa sổ terminal
<Image src>Tải qua canvasDùng pixels
console.logFrame của bạnGiữ lại cho đến khi thoát
Sửa trang này trên GitHub