Node なしでインストール
zfb を Node.js / npm 不要のスタンドアロンバイナリとしてインストールする方法。curl・Homebrew・Windows PowerShell の各インストール経路を解説します。
zfb は自己完結型の Rust バイナリとして配布されます。インストールにも実行にも Node.js は不要です — esbuild と Tailwind は zfb 実行ファイルの vendor snapshot に 埋め込まれ、サブプロセスとして呼び出される前に runtime で展開されます。zfb の隣に 別々の release-tarball バイナリとして同梱されるわけではありません。Node が必要になるのは 一部の機能をオプトインで使う場合だけです(下記の「Node が依然として必要なケース」を参照)。
Node なしの経路でもコンテンツサイト向けの全機能が利用できます。Markdown・MDX・ HTML ページ、さらに islands まで対応します — esbuild と Tailwind は zfb によって展開された ネイティブバイナリとして動作するため、クライアントサイドの ハイドレーションも CSS 処理も Node を一切介さずに動きます。npm を使うプロジェクトにとって 組み込みの Tailwind が何を意味するかについては、 Tailwind は zfb に組み込まれている を参照してください。
サポートされているプラットフォーム
| プラットフォーム | アーキテクチャ | ターゲットトリプル |
|---|---|---|
| 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 |
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 なしで動作します
{
"framework": "preact",
"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、Tailwind、MDX、コンテンツコレクション、 zfb.config.ts の評価 — はすべて Node なしで動作します。
zfb のアップグレード
その場でアップグレードする zfb upgrade コマンドは将来のリリースで計画されています。 現時点では、最初に使ったインストールコマンドを再実行してください — 既存のバイナリを 最新バージョンで上書きします。