zfb
GitHub リポジトリ

検索したい単語を入力

いつでも検索バーを開ける

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)x64x86_64-unknown-linux-gnu
Linux(glibc)arm64aarch64-unknown-linux-gnu
macOSx64x86_64-apple-darwin
macOSarm64(Apple Silicon)aarch64-apple-darwin
Windowsx64x86_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 | sh

zfb$HOME/.local/bin/zfb にインストールされます。このディレクトリがまだ PATH に含まれていない場合は追加してください:

export PATH="$HOME/.local/bin:$PATH"

環境変数:

変数デフォルト用途
ZFB_INSTALL$HOME/.localインストール先プレフィックス。バイナリは $ZFB_INSTALL/bin/zfb に配置されます。
ZFB_VERSION(最新の安定版)リリースを固定します。特定のタグには v1.0.0、プレリリースを使う場合は latest-prerelease を指定します。

macOS — Homebrew

brew install Takazudo/tap/zfb

tap は Takazudo/homebrew-tap でホストされています。formula は 安定版リリースごとに scripts/update-homebrew-formula.sh によって更新されます。

Homebrew は安定版チャンネルを追跡します

npm の latest タグと同様に、Homebrew の formula は安定版リリースのみを 追跡します — バージョン固定やプレリリースのオプトインの仕組みはありません。特定 バージョンやプレリリースをインストールしたい場合は、代わりに curl インストーラでZFB_VERSION(例:ZFB_VERSION=latest-prerelease)を指定してください。

後から新しいバージョンへ更新するには:

brew upgrade zfb

Windows — PowerShell

irm https://raw.githubusercontent.com/Takazudo/zudo-front-builder/main/install.ps1 | iex

zfb.exe%LOCALAPPDATA%\zfb\bin\zfb.exe にインストールされます。

環境変数:

変数デフォルト用途
ZFB_INSTALL%LOCALAPPDATA%\zfbインストールルート。バイナリは $ZFB_INSTALL\bin\zfb.exe に配置されます。
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.jsonzfb.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.tszfb.config.json の両方が存在する場合は .ts ファイルが 優先されます。

Node が依然として必要なケース

以下の機能は PATH 上に Node が必要です:

機能理由
--skip-tsc なしの zfb checkTypeScript の型チェックは 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 コマンドは将来のリリースで計画されています。 現時点では、最初に使ったインストールコマンドを再実行してください — 既存のバイナリを 最新バージョンで上書きします。

Revision History

作成更新