インストール
npm / pnpm または Node 不要のスタンドアロンバイナリで zfb をインストールする。
@takazudo/zfb は npm パッケージとして配布され、npm の optional-deps 経由でビルド済みのプラットフォームバイナリを取得します。Rust ツールチェインは不要です。
インストール方法は 2 つあります。Node を使うプロジェクトでは以下の npm / pnpm を、Node を入れない場合はスタンドアロンのインストールを選んでください。
以下の前提条件は npm / pnpm 経由の場合に必要です。
スタンドアロンと npm は同じ CLI とコマンドの配布方法です。エンジンの機能を選び分けるものではありません。
前提条件
以下が必要です。
Node.js ≥ 22 — npm CLI ラッパーと、
zfb checkを支えるtscサブプロセスに必要です。デフォルトの TypeScript 設定ローダー自体は Node ではなく、zfb の組み込み V8 ランタイム内で動きます。pnpm ≥ 10 — 公式インストーラー からインストールしてください。これは公開されている
@takazudo/zfbパッケージのenginesフィールドで宣言されている最小バージョンと一致します。zfb は pnpm を使うプロジェクトをスキャフォールドし、PATH上に pnpm が見つかる場合はpnpm installを自動で実行します。zfb モノレポ本体をビルドするコントリビューターは、より新しい pnpm が必要です — 下記の「ソースからビルドする(コントリビューター向け)」の節を参照してください。
サポートされているプラットフォーム
@takazudo/zfb は npm の optional-deps 経由で、以下のプラットフォーム向けにビルド済みバイナリを配布しています。
| プラットフォーム | アーキテクチャ | npm optional dependency |
|---|---|---|
| Linux(glibc) | x64 | @takazudo/zfb-linux-x64-gnu |
| Linux(glibc) | arm64 | @takazudo/zfb-linux-arm64-gnu |
| macOS | x64 | @takazudo/zfb-darwin-x64 |
| macOS | arm64(Apple Silicon) | @takazudo/zfb-darwin-arm64 |
| Windows | x64 | @takazudo/zfb-win32-x64-msvc |
Linux には glibc 2.34 以降が必要です
Linux 向けバイナリは glibc 2.34 に対してリンクされているため、Amazon Linux 2023 (AWS Amplify Hosting と CodeBuild のデフォルトビルドイメージ)、RHEL / Rocky / AlmaLinux 9、Ubuntu 22.04 以降、Debian 12 以降で動作します。それより古い ディストリビューション(Ubuntu 20.04、Debian 11)では起動時にversion `GLIBC_2.34' not found で失敗します。3.1.0 までのリリースは glibc 2.35 を必要としており、Amazon Linux 2023 では動きませんでした。それらのバージョンに 固定している場合は トラブルシューティングを参照してください。
musl / Alpine Linux はまだ未対応です
@takazudo/zfb-linux-*-musl パッケージは存在しません。Alpine(などの musl 系 ディストリビューション)では、zfb ラッパーが起動時に musl ランタイムを検出し、 glibc バイナリが引き起こすであろう分かりにくいダイナミックローダーのエラーの代わりに、musl/という分かりやすいエラーで終了します。glibc ベースの Linux イメージ(例: Debian/Ubuntu)を使ってください。
CLI のインストール
@takazudo/zfb をプロジェクトの開発依存としてインストールします。
pnpm add -D @takazudo/zfbnpm install -D @takazudo/zfbインストールの確認
スタンドアロンでインストールした場合は zfb --version と zfb --help で確認できます。以下は npm / pnpm の場合です。
npx zfb --help7 つのサブコマンドが表示されるはずです。
zfb new— 新しいプロジェクトをスキャフォールドするzfb dev— ウォッチャーとライブリロード付きの開発サーバーを起動するzfb build— 静的ビルドを生成するzfb css— サイトをビルドせずに CSS エントリポイントをコンパイルするzfb wind— zudo-wind の候補を説明、監査し、マニフェストを生成zfb preview— ビルド出力を配信するzfb check— プロジェクトを型チェックし、コンテンツコレクションをスキーマに照らして検証する
npx zfb --help で 7 つすべてが表示されれば、Your first site に進む準備ができています。
ソースからビルドする(コントリビューター向け)
zfb 本体にコントリビュートしていて CLI をソースからビルドする必要がある場合は、Rust ツールチェインの前提条件を含む詳しい手順を BUILDING.md で確認してください。
最短の手順:
git clone https://github.com/Takazudo/zudo-front-builder.git
cd zudo-front-builder
pnpm install --frozen-lockfile
cargo install --path crates/zfbcrates/ はワークスペースの pnpm store から Hono を埋め込むため、先に JavaScript の依存関係をインストールしてください。インストールしていないとビルドが停止し、pnpm install --frozen-lockfile の実行を求めます。初回ビルドは V8 のコンパイルを含み、15〜30 分かかります。
Node なしでインストール
zfb は自己完結型の Rust バイナリとして配布されます。インストールにも実行にも Node.js は不要です。 ページと islands のデフォルトのバンドラーである Rolldown と zudo-wind は zfb バイナリ自体にコンパイルされており、プロセス内で動作します。esbuild は zfb 実行ファイルの vendor snapshot に埋め込まれ、実行時に展開されてサブプロセスとして呼び出され、zfb.config.ts とプラグインをコンパイルします(ZFB_BUNDLER=esbuild を設定した場合はページと islands のバンドルも担当します)。いずれも zfb の隣に別の release tarball バイナリとして配布されません。Node が必要なのは一部の機能をオプトインで使う場合だけです(下記の Node が依然として必要なケース を参照してください)。
Node なしでも、コンテンツサイト向けの Markdown、MDX、HTML ページ、islands を利用できます。Rolldown と zudo-wind はバイナリ自身の一部で、esbuild は zfb が展開するネイティブバイナリとして動作します。クライアントサイドのハイドレーションと CSS 処理にも Node は不要です。CSS エンジンと手書き CSS の契約は スタイリング を参照してください。
スタンドアロンの対応プラットフォーム
| プラットフォーム | アーキテクチャ | ターゲットトリプル |
|---|---|---|
| Linux(glibc) | x64 | x86_64-unknown-linux-gnu |
| Linux(glibc) | arm64 | aarch64-unknown-linux-gnu |
| macOS | x64 | x86_64-apple-darwin |
| macOS | arm64(Apple Silicon) | aarch64-apple-darwin |
| Windows | x64 | x86_64-pc-windows-msvc |
Linux には glibc 2.34 以降が必要です
2 つの Linux バイナリは glibc 2.34 に対してリンクされています。Amazon Linux 2023、 RHEL / Rocky / AlmaLinux 9、Ubuntu 22.04 以降、Debian 12 以降はいずれも動作します。 それより古い glibc では起動時に version `GLIBC_2.34' not found で失敗します。 3.1.0 までのリリースは代わりに glibc 2.35 を必要としていました。詳しくはトラブルシューティングを参照してください。
musl / Alpine Linux は未対応です
musl リンクのバイナリは存在しません。install.sh は OS とアーキテクチャのみを検出し、 glibc と musl を区別できません。そのため Alpine(などの musl 系ディストリビューション) では glibc 版の x86_64-unknown-linux-gnu バイナリがダウンロードされ、実行時に分かり にくいダイナミックローダーのエラーで失敗します。glibc ベースの Linux イメージ(例: Debian/Ubuntu)を使ってください。(npm 経由のインストールでは musl を検出し、より 分かりやすいエラーで失敗します — Installationを参照。)
インストール経路
Linux / macOS — curl
curl -fsSL https://raw.githubusercontent.com/Takazudo/zudo-front-builder/main/install.sh | shzfb は $HOME/ にインストールされます。このディレクトリがまだ PATH に含まれていない場合は追加してください:
export PATH="$HOME/.local/bin:$PATH"環境変数:
| 変数 | デフォルト | 用途 |
|---|---|---|
ZFB_INSTALL | $HOME/.local | インストール先プレフィックス。バイナリは $ZFB_ に配置されます。 |
ZFB_VERSION | (最新の安定版) | リリースを固定します。特定のタグには v1.0.0、プレリリースを使う場合は latest-prerelease を指定します。 |
macOS — Homebrew
brew install Takazudo/tap/zfbtap は Takazudo/homebrew-tap でホストされています。formula は 安定版リリースごとに scripts/ によって更新されます。
Homebrew は安定版チャンネルを追跡します
npm の latest タグと同様に、Homebrew の formula は安定版リリースのみを 追跡します — バージョン固定やプレリリースのオプトインの仕組みはありません。特定 バージョンやプレリリースをインストールしたい場合は、代わりに curl インストーラでZFB_VERSION(例:ZFB_VERSION=latest-prerelease)を指定してください。
後から新しいバージョンへ更新するには:
brew upgrade zfbWindows — PowerShell
irm https://raw.githubusercontent.com/Takazudo/zudo-front-builder/main/install.ps1 | iexzfb.exe は %LOCALAPPDATA%\ にインストールされます。
環境変数:
| 変数 | デフォルト | 用途 |
|---|---|---|
ZFB_INSTALL | %LOCALAPPDATA%\zfb | インストールルート。バイナリは $ZFB_ に配置されます。 |
ZFB_VERSION | (最新の安定版) | リリースタグ(例:v1.0.0)または latest-prerelease を固定します。 |
バイナリを現在のセッションの PATH に追加するには:
$env:PATH = "$env:LOCALAPPDATA\zfb\bin;$env:PATH"恒久的に追加する場合(実行後は新しいターミナルを開いてください):
[System.Environment]::SetEnvironmentVariable(
'PATH',
"$env:LOCALAPPDATA\zfb\bin;" + [System.Environment]::GetEnvironmentVariable('PATH', 'User'),
'User'
)Windows — Scoop
まだ利用できません
Scoop バケット(Takazudo/scoop-bucket)は計画中ですが、バケットのリポジトリは まだ作成されていません。それまでは上記の PowerShell スクリプトを利用してください。
スタンドアロンの確認
zfb --version設定ファイル:zfb.config.json と zfb.config.ts
どちらの設定フォーマットも Node なしで動作します。zfb.config.ts は、デフォルトの zfb バイナリに同梱された組み込み V8 アイソレートによってインプロセスで評価されます — 実行時の Node 依存はありません。
zfb.config.ts はデータ設定です — node:* のインポート、process.env、その他 Node 専用 API は評価器内では利用できません。TypeScript の型・コメント・計算値が 欲しい場合は zfb.config.ts を、プレーンな JSON で済ませたい場合は zfb.config.json を使ってください。
// zfb.config.json — こちらも Node なしで動作します
{
"outDir": "dist",
"collections": [
{
"name": "blog",
"path": "content/blog",
"schema": { "type": "object", "properties": { "title": { "type": "string" } } }
}
]
}zfb.config.ts と zfb.config.json の両方が存在する場合は .ts ファイルが 優先されます。
Node が依然として必要なケース
以下の機能は PATH 上に Node が必要です:
| 機能 | 理由 |
|---|---|
--skip-tsc なしの zfb check | TypeScript の型チェックは Node パッケージである tsc に委譲されます。TS 以外のチェックだけを実行するには --skip-tsc を指定してください。 |
Cloudflare アダプタ(@takazudo/zfb-adapter-cloudflare) | アダプタは Node CLI である Wrangler に依存します。Cloudflare Workers への SSR デプロイでは、デプロイ環境に常に Node が必要です。 |
それ以外 — ビルド、開発サーバー、islands、zudo-wind、MDX、コンテンツコレクション、 zfb.config.ts の評価 — はすべて Node なしで動作します。
zfb のアップグレード
zfb upgrade サブコマンドはありません。 現時点では、最初に使ったインストールコマンドを再実行してください — 既存のバイナリを 最新バージョンで上書きします。