このガイドでは、新しい Waku ↗ アプリケーションを作成し、Cloudflare Workers(新しい Workers Assets)にデプロイします。Waku は React 19 ↗ と React Server Components ↗ 向けに作られた、ミニマルな React フレームワークです。Server Components の利用は任意です。ビルド時に Server Components を実行して静的 HTML を出力する構成にも、動的な React サーバーレンダリングで動かす構成にもできます。Hono ↗ と Vite ↗ の上に構築されています。
create-cloudflare ↗ CLI(C3)で新しいプロジェクトを用意します。C3 は新しいプロジェクトディレクトリを作成し、Waku 公式のセットアップツールを起動し、すぐにデプロイするかどうかを選べます。
create-cloudflare で Workers Assets 付きの新しい Waku プロジェクトを作るには、次のコマンドを実行します。
npm create cloudflare@latest my-waku-app -- --framework=wakuyarn create cloudflare@latest my-waku-app --framework=wakupnpm create cloudflare@latest my-waku-app --framework=wakuセットアップでは、次のオプションを選びます。
- What would you like to start with? では、
Framework Starterを選びます。 - Which development framework do you want to use? では、
Wakuを選びます。 - フレームワーク本体の CLI ウィザードを完了します。
- Do you want to use git for version control? では、
Yesを選びます。 - Do you want to deploy your application? では、
Noを選びます(デプロイ前にいくつか変更します)。
プロジェクトの用意が終わったら、次のコマンドでディレクトリを移動します。
cd my-waku-appプロジェクトを作成したら、プロジェクトディレクトリで次のコマンドを実行してローカルサーバーを起動します。開発中にプロジェクトをローカルでプレビューできます。
npm run devyarn run devpnpm run devプロジェクトは *.workers.dev サブドメインまたは カスタムドメイン にデプロイできます。自分のマシンからでも、Cloudflare の CI/CD を含む任意の CI/CD システムからでもデプロイできます。
次のコマンドでビルドとデプロイを実行します。CI を使う場合は、"deploy command" の設定を適切に更新してください。
npm run deployyarn run deploypnpm run deployWaku アプリケーションは、プロダクトのバインディングを使って、ローカル開発と本番の両方で Cloudflare Developer Platform と統合できます。バインディングの設定と、React Server Components からのアクセス方法は、Waku の Cloudflare ドキュメント ↗ を参照してください。
Waku アプリケーションで静的アセットを配信するには、./public/ ディレクトリに追加します。よくある例は、画像、スタイルシート、フォント、Web マニフェストです。
ビルド時に Waku は、このディレクトリの .js、.css、.html、.txt ファイルを最終的なアセット出力へコピーします。.txt ファイルは、ビルド時にレンダリングされる Server Components が使うデータの保存に使います。
デフォルトでは、Cloudflare はまずリクエストパスを静的アセットのパスと照合します。このパスは、アップロードしたアセットディレクトリのファイル構造に基づきます。対象は、Wrangler 設定の assets.directory で指定したディレクトリ、または Cloudflare Vite plugin の場合はクライアントビルドの出力ディレクトリです。一致しない場合は、Worker があれば呼び出します。Worker がない場合、または Worker がアセットバインディングを使う場合、Cloudflare は not_found_handling で設定した動作にフォールバックします。
静的アセットでのルーティングの仕組みと、この動作のカスタマイズについては、ルーティングのドキュメント を参照してください。