Menjalankan di terminal

Render aplikasi App Router atau satu komponen di terminal dengan text run dan renderToTerminal.

text run me-render aplikasi App Router di terminal. Layout, komponen, keymap, dan route handler digunakan bersama dengan browser. Keluarannya berupa ANSI truecolor, bukan span %c.

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

Tekan Ctrl+C untuk keluar. text run memerlukan Bun.

text run

text run mengimpor setiap file di app/, memasang App Router dengan riwayat dalam memori, dan menggambarnya dalam layar penuh. <Link>, useRouter(), notFound() dan redirect() berfungsi tanpa perubahan.

Panggilan fetch("/api/...") dengan origin yang sama menjalankan handler route.ts Anda dalam proses yang sama, persis seperti saat text dev melayaninya. URL lain mengakses jaringan.

renderToTerminal

Untuk satu komponen, atau CLI Anda sendiri:

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

useApp().exit() melepas komponen dan memulihkan terminal.

OpsiDeskripsi
stdin / stdoutBawaan process.stdin / process.stdout
cols / rowsUkuran tetap (bawaan: mengikuti terminal)
altScreenPulihkan riwayat gulir saat keluar (bawaan true)
mousePengguliran dengan roda mouse (bawaan true)
exitOnCtrlCBawaan true
fpsBatas frame (bawaan 60)
patchConsoleTahan console.* hingga keluar (bawaan true)
theme / transparentSeperti pada createConsoleRoot

Keluaran

Setiap frame dibandingkan baris demi baris untuk mencari perbedaan. Hanya baris yang berubah yang ditulis, diapit penanda keluaran tersinkronisasi agar terminal yang mendukungnya tidak pernah menampilkan frame yang baru tergambar sebagian. Aplikasi yang menganggur tidak menulis apa pun.

Masukan

Stdin dalam mode raw diurai menjadi event yang sama dengan yang dihasilkan browser: tombol panah dan fungsi dengan pengubah, kombinasi Alt, bracketed paste, roda mouse SGR dan protokol keyboard kitty. TerminalInputParser dan parseTerminalInput diekspor jika Anda memerlukannya di tempat lain.

Perbedaan

FiturDevToolsTerminal
Pengaturan laju frame~15 fpsHingga fps
Ukuran kisiKonsol tertambatJendela terminal
<Image src>Dimuat melalui canvasGunakan pixels
console.logFrame AndaDitahan hingga keluar
Edit halaman ini di GitHub