cloudflare-worker-builder について
cloudflare-worker-builderは、プロジェクト概要からCloudflare Workerを構成するスキルです。APIやシングルページアプリ、またはその両方を開発する人向けに、Honoルーティング、Vite開発サーバー、Static Assetsを含む構成を用意し、バインディング設定とデプロイを案内します。
主な機能
- 01概要に基づくWorkerの雛形作成
- 02HonoルーティングとViteの設定
- 03Static Assetsの統合
- 04必要に応じたバインディング設定
- 05ローカル開発とデプロイの案内
活用シーン
- 01APIを備えたWorkerプロジェクトの作成
- 02APIと併せたシングルページアプリの構築
- 03プロジェクト向けのD1、R2、KVバインディング設定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jezweb/ claude-skills --skill cloudflare-worker-builderインストール後、Claude Code で/cloudflare-worker-builderを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/package.jsontsconfig.jsonvite.config.tswrangler.jsoncassets/public/index.htmlscript.jsstyles.cssassets/src/index.tsreferences/architecture.mdcommon-issues.mddeployment.md詳細
Cloudflare Worker Builder
簡単な説明から、動作する Cloudflare Worker プロジェクトをスキャフォールドします。Hono ルーティング、Vite 開発サーバー、Static Assets を備えたデプロイ可能なプロジェクトを生成します。
ワークフロー
Step 1: プロジェクトを理解する
適切なバインディングと構成を選べるよう、プロジェクトについて質問します。
- アプリは何をしますか?(API のみ、SPA + API、ランディングページ)
- どのデータストレージを使用しますか?(D1 データベース、R2 ファイル、KV キャッシュ、なし)
- 認証は必要ですか?(Clerk、better-auth、なし)
- カスタムドメインと workers.dev サブドメインのどちらを使用しますか?
「データベース付きの todo アプリ」のような簡単な説明があれば、作業を進められます。
Step 2: プロジェクトをスキャフォールドする
npm create cloudflare@latest my-worker -- --type hello-world --ts --git --deploy false --framework none
cd my-worker
npm install hono
npm install -D @cloudflare/vite-plugin vite
このスキルの assets/ ディレクトリにあるアセットファイルをコピーし、カスタマイズします。
wrangler.jsonc— Worker の設定vite.config.ts— Vite + Cloudflare プラグインsrc/index.ts— Static Assets のフォールバックを備えた Hono アプリpackage.json— スクリプトと依存関係tsconfig.json— TypeScript の設定public/index.html— SPA のエントリーポイント
Step 3: バインディングを設定する
プロジェクトのニーズに応じて wrangler.jsonc にバインディングを追加します。Wrangler 4.45+ は初回デプロイ時にリソースを自動プロビジョニングするため、必ず明示的な名前を指定してください。
{
"name": "my-worker",
"main": "src/index.ts",
"compatibility_date": "2025-11-11",
"assets": {
"directory": "./public/",
"binding": "ASSETS",
"not_found_handling": "single-page-application",
"run_worker_first": ["/api/*"]
},
// Add as needed:
"d1_databases": [{ "binding": "DB", "database_name": "my-app-db" }],
"r2_buckets": [{ "binding": "STORAGE", "bucket_name": "my-app-files" }],
"kv_namespaces": [{ "binding": "CACHE", "title": "my-app-cache" }]
}
Step 4: デプロイする
npm run dev # Local dev at http://localhost:8787
wrangler deploy # Production deploy
重要なパターン
エクスポート構文
// CORRECT — use this pattern
export default app
// WRONG — causes "Cannot read properties of undefined"
export default { fetch: app.fetch }
Static Assets + API ルート
run_worker_first を設定しないと、SPA フォールバックが API ルートを横取りし、JSON の代わりに index.html を返します。
"assets": {
"not_found_handling": "single-page-application",
"run_worker_first": ["/api/*"] // CRITICAL
}
Vite の設定
import { defineConfig } from 'vite'
import { cloudflare } from '@cloudflare/vite-plugin'
export default defineConfig({ plugins: [cloudflare()] })
wrangler.jsonc では必ず main フィールドを設定してください。Vite プラグインで必要です。
Scheduled/Cron ハンドラー
cron トリガーを追加する場合は、明示的なエクスポートに切り替えます。
export default {
fetch: app.fetch,
scheduled: async (event, env, ctx) => { /* ... */ }
}
参考ファイル
詳しいトラブルシューティングについては、以下を参照してください。
references/common-issues.md— 出典と修正方法を記載した10件の問題references/architecture.md— ルートの優先順位、キャッシュ、Workers RPCreferences/deployment.md— CI/CD、自動プロビジョニング、段階的ロールアウト