@k8ordo/framework

はじめる

@k8ordo/frameworkで最初のページを作り、サーバーなしで動くアプリとしてvite buildでビルドするまでを進めます。

このページの内容

インストール

bash
npm install react react-dom server-only
bash
npm install -D @k8ordo/framework @k8ordo/router vite typescript @types/node @types/react @types/react-dom

次の環境で動きます。

  • React 19.3以上
  • Vite 8以上
  • Node.js 24以上

エージェント向けのガイドはnode_modules/@k8ordo/framework/docs/GUIDE.mdに入っています。AGENTS.mdなどからこのパスを参照させてください。

Viteの設定

vite.config.ts
import { framework } from '@k8ordo/framework/vite';
import { defineConfig } from 'vite';

export default defineConfig({
  plugins: [framework({ mode: 'static' })],
'static':サーバーなしで動かす
});

framework()が返すプラグインには、ReactのプラグインとRSCのパイプラインが入っています。@vitejs/plugin-reactを自分で足す必要はありません。

modeは省略できません。ここでは'static'モードから始めます。サーバーありで動かす'server'モードとの違いと選び方はモードの選び方を見てください。

生成される型

tsconfig.json
{
  "include": [
    // ...
    ".k8ordo/**/*.ts"
  ]
}

フレームワークは、src/routes/から作ったルート表と型を.k8ordo/に書き出します。includeに足すと、href()に渡すパスとページのparamsに型が付きます。

ルートレイアウト

src/routes/layout.tsx
import type { LayoutProps } from '@k8ordo/framework';

export default function RootLayout({ children }: LayoutProps<'/'>) {
  return (
    <html lang="en">
      <body>{children}</body>
    </html>
  );
}

src/routes/layout.tsxは、すべてのページを包むレイアウトです。フレームワークはHTMLのテンプレートを持たないので、<html>と<body>、<html>のlang属性もこのファイルで書きます。

情報

メモ

ルートレイアウトが描画した文書は、まるごとハイドレーションの対象です。HTMLを書き換えるCDNの機能を有効にしていると、ハイドレーションに失敗することがあります。原因と直し方はトラブルシューティングを見てください。

最初のページ

src/routes/page.tsx
export default function HomePage() {
  return (
    <>
      <title>Home</title>
      <h1>Hello</h1>
    </>
  );
}

page.tsxを置いたディレクトリが、ページのURLになります。src/routes/page.tsxは/のページです。ディレクティブを書いていないファイルはServer Componentです。'static'モードではビルドのときに描画されます。

タイトルは、ページの中で<title>を描画して付けます。

ページ間のリンクには専用のコンポーネントが無く、素の<a>にhref()の値を渡します。ページの足し方とファイル名の決まりはルーティングを見てください。

開発サーバーとビルド

bash
vite dev
vite build
vite build
k8ordo: wrote 1 routes

vite devは、リクエストのたびにページを描画する開発サーバーです。Fast Refreshが効き、ファイルを保存すると表示がすぐに変わります。

vite buildはすべてのページを描画してdist/client/に書き出し、最後に書き出したルートの数を表示します。dist/client/はどの静的ホスティングにも置けます。

ホスティングへの置き方と、'server'モードでの動かし方はデプロイを見てください。

k8ordo

Baselineに入った機能を、制限なく使うReactのライブラリ群。

© 2026 k8o — MIT License

組版:Noto Sans JP / M PLUS 2