اجرا در ترمینال
با text run و renderToTerminal، یک برنامهٔ App Router یا یک کامپوننت را در ترمینال رندر کنید.
دستور text run یک برنامهٔ App Router را در ترمینال رندر میکند. چیدمان، کامپوننتها، نقشهٔ کلیدها و کنترلگرهای مسیر با مرورگر مشترک هستند. خروجی بهجای spanهای %c، از نوع ANSI با رنگ واقعی است.
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 آنها را سرو میکند. سایر URLها به شبکه میروند.
renderToTerminal
برای یک کامپوننت یا CLI خودتان:
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 | فریمهای شما | نگهداری تا زمان خروج |