Terminalde çalıştırma
text run ve renderToTerminal ile bir App Router uygulamasını veya tek bir bileşeni terminalde render edin.
text run, bir App Router uygulamasını terminalde render eder. Layout, bileşenler, tuş haritaları ve rota işleyicileri tarayıcıyla ortaktır. Çıktı, %c span’leri yerine truecolor ANSI kullanır.
text run # render ./app at /text run --path /logs # start on another routeÇıkmak için Ctrl+C tuşlarına basın. text run için Bun gerekir.
text run
text run, app/ dizinindeki tüm dosyaları içe aktarır, App Router’ı bellekte tutulan bir geçmişle bağlar ve tam ekran çizer. <Link>, useRouter(), notFound() ve redirect() değişiklik gerektirmeden çalışır.
Aynı kökenden gelen fetch("/api/...") çağrıları, route.ts işleyicilerinizi süreç içinde, tam olarak text dev komutunun sunduğu gibi çalıştırır. Diğer URL’ler ağa yönlendirilir.
renderToTerminal
Tek bir bileşen veya kendi CLI’ınız için:
import { renderToTerminal } from "@textjs/app/terminal";import { App } from "./app";const app = await renderToTerminal(<App />);await app.waitUntilExit();useApp().exit(), bileşeni kaldırır ve terminali eski durumuna getirir.
| Seçenek | Açıklama |
|---|---|
stdin / stdout | Varsayılan: process.stdin / process.stdout |
cols / rows | Sabit boyut (varsayılan: terminali takip etme) |
altScreen | Çıkışta kaydırma geçmişini geri yükleme (varsayılan: true) |
mouse | Tekerlekle kaydırma (varsayılan: true) |
exitOnCtrlC | Varsayılan: true |
fps | Kare hızı sınırı (varsayılan: 60) |
patchConsole | Çıkışa kadar console.* çağrılarını bekletme (varsayılan: true) |
theme / transparent | createConsoleRoot ile aynı |
Çıktı
Her karenin farkı satır satır hesaplanır. Yalnızca değişen satırlar yazılır ve eşzamanlı çıktı işaretleyicileriyle çevrelenir; böylece bunları destekleyen terminaller hiçbir zaman yarım çizilmiş bir kare göstermez. Boştaki uygulamalar hiçbir şey yazmaz.
Girdi
Ham moddaki stdin, tarayıcının ürettiği olaylarla aynı olaylara ayrıştırılır: değiştirici tuşlarla birlikte ok ve işlev tuşları, Alt kombinasyonları, köşeli ayraçlı yapıştırma, SGR fare tekerleği ve kitty klavye protokolü. Başka yerlerde ihtiyaç duymanız durumunda TerminalInputParser ve parseTerminalInput dışa aktarılır.
Farklar
| Özellik | DevTools | Terminal |
|---|---|---|
| Kare hızı | ~15 fps | En fazla fps |
| Izgara boyutu | Kenetlenmiş konsol | Terminal penceresi |
<Image src> | Canvas üzerinden yüklenir | pixels kullanın |
console.log | Kareleriniz | Çıkışa kadar bekletilir |