プロジェクト構成
app/ディレクトリー、text.config.ts、text CLI。
app/ 内のフォルダーがルートを定義し、特別なファイルが各ルートのUIを定義します。
#フォルダー
| フォルダー | 用途 |
|---|
app | ルート、レイアウト、ルートハンドラー |
lib | ルーティング対象外の共有モジュール |
public | 静的アセット |
#ルーティングファイル
| ファイル | 用途 |
|---|
layout.tsx | セグメントで共有するUI |
page.tsx | ルーティング可能な画面 |
loading.tsx | Suspenseのフォールバック |
error.tsx | エラーバウンダリー |
not-found.tsx | 一致するルートがないURL |
route.ts | APIエンドポイント |
app/├── layout.tsx → shared shell├── page.tsx → /├── sessions/│ ├── page.tsx → /sessions│ └── [id]/page.tsx → /sessions/:id└── api/health/route.ts → GET /api/health
#動的ルート
| フォルダー | URL | params |
|---|
[id] | /sessions/42 | { id: "42" } |
[...slug] | /docs/a/b | { slug: ["a", "b"] } |
#text.config.ts
import { defineConfig } from "@textjs/app";export default defineConfig({ title: "Acme", viewport: { width: 120, height: 36, theme: "geistDark" }, hints: [{ keys: "↑ ↓", label: "count" }],});
| オプション | デフォルト | 説明 |
|---|
title | "" | ページとFocusPadのタイトル |
viewport | コンソールに合わせる、それ以外は 120×36 | responsive(デフォルトは true)、フォールバックの width × height、theme |
hints | [] | ページのFocusPadに表示する2〜3個のキー |
action | press <first hint> | フォーカス後の操作、例:"type a prompt" |
devIndicators | true | コンソール内の開発用オーバーレイ([▼]) |
focusHint | true | ページにフォーカスがない間、コンソールの最終行に重ねて表示する「キーボードを使うにはページをクリックしてください」 |
rewrites | [] | リライトとプロキシー |
ansi | { cols: 80, rows: 24 } | curlとターミナルクライアント用のフレームサイズ、またはHTMLを配信する場合は false |
#CLI
| コマンド | 説明 |
|---|
text dev | Fast Refresh対応の開発サーバー |
text build | 本番用ビルド |
text start | ビルドとルートハンドラーの配信 |
text run | ターミナルでのアプリの描画(ターミナル) |
text mcp | コーディングエージェントへのアプリの配信(MCP) |
GitHubでこのページを編集