הרצה בטרמינל
רינדור יישום App Router או רכיב יחיד בטרמינל עם text run ו-renderToTerminal.
text run מרנדר אפליקציית App Router בטרמינל. ה-layout, הרכיבים, מפות המקשים ומטפלי הנתיב משותפים עם הדפדפן. הפלט הוא ANSI בצבע מלא במקום רכיבי span של %c.
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 | הפריימים של האפליקציה | השהיה עד ליציאה |