mcpField
C
cloudflare-worker-builder

cloudflare-worker-builder

github.com/jezwebクラウド・DevOps1.1k1.4k 回インストール3 週間前に更新
リポジトリ

cloudflare-worker-builder について

cloudflare-worker-builderは、プロジェクト概要からCloudflare Workerを構成するスキルです。APIやシングルページアプリ、またはその両方を開発する人向けに、Honoルーティング、Vite開発サーバー、Static Assetsを含む構成を用意し、バインディング設定とデプロイを案内します。

主な機能

  1. 01概要に基づくWorkerの雛形作成
  2. 02HonoルーティングとViteの設定
  3. 03Static Assetsの統合
  4. 04必要に応じたバインディング設定
  5. 05ローカル開発とデプロイの案内

活用シーン

  1. 01APIを備えたWorkerプロジェクトの作成
  2. 02APIと併せたシングルページアプリの構築
  3. 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.json
tsconfig.json
vite.config.ts
wrangler.jsonc
assets/public/
index.html
script.js
styles.css
assets/src/
index.ts
references/
architecture.md
common-issues.md
deployment.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 }

出典:honojs/hono #3955

Static Assets + API ルート

run_worker_first を設定しないと、SPA フォールバックが API ルートを横取りし、JSON の代わりに index.html を返します。

"assets": {
  "not_found_handling": "single-page-application",
  "run_worker_first": ["/api/*"]  // CRITICAL
}

出典:workers-sdk #8879

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 RPC
  • references/deployment.md — CI/CD、自動プロビジョニング、段階的ロールアウト

コメント