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 routeNhấ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:
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ọn | Mô tả |
|---|---|
stdin / stdout | Mặc định là process.stdin / process.stdout |
cols / rows | Kích thước cố định (mặc định: theo terminal) |
altScreen | Khôi phục lịch sử cuộn khi thoát (mặc định true) |
mouse | Cuộn bằng con lăn (mặc định true) |
exitOnCtrlC | Mặc định true |
fps | Giới hạn frame (mặc định 60) |
patchConsole | Giữ console.* cho đến khi thoát (mặc định true) |
theme / transparent | Như 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ăng | DevTools | Terminal |
|---|---|---|
| Nhịp frame | ~15 fps | Tối đa fps |
| Kích thước lưới | Console gắn trong cửa sổ | Cửa sổ terminal |
<Image src> | Tải qua canvas | Dùng pixels |
console.log | Frame của bạn | Giữ lại cho đến khi thoát |