CLI から始める — Hono API、React SPA、Cloudflare Vite plugin を備えたフルスタックアプリを足場から作成し、高速に開発できます。
npm create cloudflare@latest -- my-hono-app --template=cloudflare/templates/vite-react-templateyarn create cloudflare my-hono-app --template=cloudflare/templates/vite-react-templatepnpm create cloudflare@latest my-hono-app --template=cloudflare/templates/vite-react-templateまたはデプロイだけする — Hono、React、Vite を使ったフルスタックアプリを作成します。CI/CD とプレビューまで設定済みです。
Hono ↗ は、Web アプリケーション向けの超高速で軽量なフレームワークで、Cloudflare Workers との相性が非常に良いです。 Workers Assets を使うと、Workers 上の Hono API と SPA を組み合わせて、フルスタックアプリを簡単に作れます。
-
create-cloudflare CLI(C3)で新しいプロジェクトを作成します
npm create cloudflare@latest -- my-hono-app --template=cloudflare/templates/vite-react-templateyarn create cloudflare my-hono-app --template=cloudflare/templates/vite-react-templatepnpm create cloudflare@latest my-hono-app --template=cloudflare/templates/vite-react-templateこのプロジェクトはどう構成されていますか?
プロジェクトの簡略化したファイルツリーです。
- my-hono-app
- src
- worker/
- index.ts
- react-app/
- worker/
- index.html
- vite.config.ts
- wrangler.jsonc
- src
wrangler.jsoncは Wrangler 設定ファイル です。 このファイルでは次のとおりです。mainはsrc/worker/index.tsを指します。これが Worker 上で動く Hono アプリです。assets.not_found_handlingはsingle-page-applicationです。SPA が処理するルートは Worker に届かないため、課金対象になりません。- Cloudflare の開発者プラットフォーム上のリソースへバインディングを追加する場合は、ここで設定します。詳細は バインディング を参照してください。
vite.config.tsは Cloudflare Vite plugin を使うよう設定されています。Worker を Cloudflare Workers ランタイムで実行するため、ローカル開発環境を本番に近づけられます。src/worker/index.tsが Hono アプリです。最初は/apiエンドポイントが 1 つあります。src/react-app/src/App.tsxの React アプリがこのエンドポイントを呼び出し、返ってきたメッセージを SPA に表示します。 - my-hono-app
-
Cloudflare Vite plugin でローカル開発します
プロジェクトを作成したら、プロジェクトディレクトリで次のコマンドを実行し、ローカル開発サーバーを起動します。
npm run devyarn run devpnpm run devローカル開発では何が起きていますか?
このプロジェクトはローカル開発とビルドに Vite を使うため、ホットモジュールリプレースメント(HMR)を含む Vite の機能がすべて使えます。
加えて、
vite.config.tsは Cloudflare Vite plugin を使うよう設定されています。アプリケーションは本番と同じ Cloudflare Workers ランタイムで動き、バインディングのローカルエミュレーションにもアクセスできます。 -
プロジェクトをデプロイします
プロジェクトは、
*.workers.devサブドメインまたは カスタムドメイン にデプロイできます。自機からでも、Cloudflare の Workers Builds を含む任意の CI/CD システムからでもデプロイできます。次のコマンドでビルドとデプロイを行います。CI を使う場合は、「デプロイコマンド」 の設定も合わせて更新してください。
npm run deployyarn run deploypnpm run deploy
Hono アプリからバインディングへアクセスする方法は、Hono のドキュメント ↗ を参照してください。
バインディングを使うと、アプリケーションを Cloudflare Developer Platform と完全に統合でき、コンピュート、ストレージ、AI などへアクセスできます。