# Wrangler CLI Knowledge

> Use when user asks about Wrangler, Cloudflare Workers, Durable Objects, Queues, Hyperdrive, Service Bindings, or custom build configurations. Cloudflare Wrangler CLI の仕様と使い方に関する knowledge を提供し、Durable Objects, Queues, Hyperdrive, Service Bindings, カスタムビルド設定 (Webpack/esbuild) について回答する。

- Skill: `biwakonbu/wrangler-cli-knowledge` (Agent Skill)
- Install (CLI): `npx skillmds@latest add biwakonbu/wrangler-cli-knowledge`
- Raw SKILL.md: https://api.skillmd.com/api/skills/biwakonbu/wrangler-cli-knowledge/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: biwakonbu (https://skillmd.com/u/biwakonbu)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/biwakonbu/wrangler-cli-knowledge

---


# Wrangler CLI Knowledge

Cloudflare Wrangler CLI の仕様と使い方に関する包括的な知識を提供するスキル。

## 概要

Wrangler は Cloudflare Developer Platform のコマンドラインインターフェース（CLI）ツールです。Cloudflare Workers やその他の Developer Platform 製品の作成、開発、テスト、デプロイに使用されます。

---

## 主要なコンポーネント

### Durable Objects

コンピューティングとストレージを組み合わせた Cloudflare Workers の特殊なタイプです。

*   **特徴**:
    *   グローバルに一意の ID を持つインスタンス。
    *   シングルスレッドで動作し、複数のクライアント間で調整が可能。
    *   トランザクション的で強力な一貫性のあるストレージ。
    *   WebSocket をサポートし、低遅延なリアルタイム通信が可能。
*   **用途**:
    *   リアルタイム共同編集ツール、チャットアプリケーション、ゲームサーバー。

### Queues

メッセージを確実に送受信できるようにするグローバルメッセージキューイングサービスです。

*   **特徴**:
    *   操作のバッファリングまたはバッチ処理。
    *   リクエストからの重い処理のオフロード。
    *   Workers 間のデータ送信。
    *   少なくとも1回のメッセージ配信を保証。
*   **用途**:
    *   非同期タスク処理、イベント駆動型アプリケーション。

### Hyperdrive

既存の地域データベース（PostgreSQL, MySQL 等）へのクエリを高速化し、グローバル分散型データベースのように扱えるサービスです。

*   **特徴**:
    *   接続プーリング。
    *   インテリジェントなクエリキャッシュ。
    *   リクエストを最も近い接続プールにルーティングして遅延を削減。
*   **用途**:
    *   既存データベースのグローバルパフォーマンス向上。

### Service Bindings

Workers が他の Workers や Cloudflare リソースと内部的に通信するためのメカニズムです。

*   **特徴**:
    *   Cloudflare ネットワーク内での高速な内部接続。
    *   追加の遅延やオーバーヘッドがない。
    *   マイクロサービスアーキテクチャにおける関心の分離を可能にする。
*   **用途**:
    *   内部 API 呼び出し、共通コンポーネントの共有。

---

## Wrangler の基本操作

### インストール

```bash
npm install -g wrangler
```

### 認証

```bash
wrangler login
```

### プロジェクトの初期化

```bash
wrangler init my-worker
```

### デプロイ

```bash
wrangler deploy
```

### ローカル開発

```bash
wrangler dev
```

---

## カスタムビルド (Custom Build)

Wrangler はデフォルトで **esbuild** を使用して Worker をバンドルしますが、カスタムビルドコマンドを使用して Webpack やその他のツールを使用するように設定することも可能です。

### 設定 (wrangler.toml)

`[build]` セクションを使用してカスタムビルドを定義します。

```toml
[build]
command = "npm run build"
cwd = "."
watch = ["./src"]

[build.upload]
main = "./dist/index.js"
```

### 主要なオプション

*   **`command`**: ビルドを実行するためのコマンド。`wrangler dev` や `wrangler deploy` の実行前に呼び出されます。
*   **`cwd`**: コマンドを実行するディレクトリ。
*   **`watch`**: 変更を監視するディレクトリまたはファイルのリスト。
*   **`upload.main`**: ビルド後に生成される、デプロイ対象のメインスクリプトのパス。

### Webpack の使用

Wrangler v2 以降、`type = "webpack"` はサポートされなくなりました。Webpack を使用する場合は、カスタムビルドコマンドとして設定します。

1. `package.json` にビルドスクリプトを追加:
   ```json
   "scripts": {
     "build": "webpack"
   }
   ```
2. `wrangler.toml` に設定を追加:
   ```toml
   [build]
   command = "npm run build"

   [build.upload]
   main = "./dist/worker.js" # Webpack の出力先に合わせる
   ```

### esbuild の詳細設定

Wrangler のデフォルトの esbuild 挙動をカスタマイズしたい場合（例: プラグインの追加など）も、カスタムビルドスクリプトを作成して `command` から呼び出す手法が一般的です。

---

## 設定 (wrangler.toml)

### Durable Objects の設定

```toml
[[durable_objects.bindings]]
name = "MY_DURABLE_OBJECT"
class_name = "MyDurableObject"
```

### Queues の設定

```toml
[[queues.producers]]
queue = "my-queue"
binding = "MY_QUEUE"

[[queues.consumers]]
queue = "my-queue"
```

### Hyperdrive の設定

```toml
[[hyperdrive]]
binding = "MY_HYPERDRIVE"
id = "hyperdrive-id"
```

### Service Bindings の設定

```toml
[[services]]
binding = "AUTH_SERVICE"
service = "auth-worker"
```
