Wranglerのゼロコンフィグデプロイを試してみた -- 設定ファイルの自動生成を確認する
どうも!オペ部の西村祐二です!
Cloudflare Workersにアプリケーションをデプロイする際は、CLIツールのWranglerを使います。新規プロジェクトであればnpm create cloudflare(C3)で設定ファイルごとスキャフォールディングできますが、既存プロジェクトをWorkersにデプロイする場合はwrangler.tomlやwrangler.jsonなどの設定ファイルを手動で作成し、アダプタのインストールなども自分で行う必要がありました。
2026年2月、Wrangler 4.68.0でゼロコンフィグデプロイ(自動設定)がGA(一般提供)となり、既存プロジェクトでも設定ファイルなしでwrangler deployを実行するだけでデプロイできるようになりました。
実際にいくつかのプロジェクトでwrangler setupを実行し、設定ファイルが自動生成される様子を確認してみました。
ゼロコンフィグデプロイとは
ゼロコンフィグデプロイは、Wranglerの設定ファイルがないプロジェクトでwrangler deployまたはwrangler setupを実行すると、フレームワークの自動検出から設定ファイルの生成までを一括で行ってくれる機能です。
既存プロジェクトをWorkersにデプロイする場合、従来は以下のような手作業が必要でした。
wrangler.toml(または.json/.jsonc)の作成- フレームワーク用アダプタのインストール(例:
@astrojs/cloudflare) - フレームワーク設定ファイルの編集(例:
astro.config.mjsにアダプタを追加) package.jsonへのデプロイスクリプト追加
ゼロコンフィグデプロイでは、これらをWranglerが自動で処理します。
対応フレームワーク
2026年4月時点で、公式ドキュメントに記載されているフレームワークと自動設定の対応状況は以下のとおりです。
| フレームワーク | アダプタ/ツール | 備考 |
|---|---|---|
| Next.js | @opennextjs/cloudflare | R2キャッシング自動設定 |
| Astro | @astrojs/cloudflare | astro addで導入 |
| SvelteKit | @sveltejs/adapter-cloudflare | sv addで導入 |
| Nuxt | 組み込みプリセット | |
| React Router | Viteプラグイン | |
| Solid Start | 組み込みプリセット | |
| TanStack Start | Viteプラグイン | |
| Angular | なし | |
| Analog | 組み込みプリセット | |
| Vite | Viteプラグイン | |
| Vike | なし | |
| Waku | なし | |
| 静的サイト | なし | index.htmlが含まれるディレクトリを検出 |
コマンドの使い分け
| コマンド | 動作 |
|---|---|
wrangler deploy |
自動設定 + デプロイ |
wrangler setup |
自動設定のみ(デプロイしない) |
wrangler setup --dry-run |
変更内容のプレビュー(ファイル変更なし) |
いずれのコマンドも--yesフラグを付けると確認プロンプトをスキップできます。CI/CD環境で便利です。
試してみた
環境
- Wrangler 4.80.0
- Node.js v25.8.2
- macOS
ケース1: Astroプロジェクト
create astroでbasicsテンプレートから作成したプロジェクトに、Wranglerをインストールしてwrangler setup --yesを実行しました。
npm create astro@latest astro-app -- --template basics
cd astro-app
npm install wrangler --save-dev
npx wrangler setup --yes
実行結果は以下のとおりです。
⛅️ wrangler 4.80.0
───────────────────
Detected Project Settings:
- Worker Name: astro-app
- Framework: Astro
- Build Command: npm run build
- Output Directory: dist
📦 Install packages:
- wrangler (devDependency)
📝 Update package.json scripts:
- "deploy": "npm run build && wrangler deploy"
- "preview": "npm run build && wrangler dev"
🛠️ Configuring project for Astro with "astro add cloudflare"
├ Adding Wrangler files to the .gitignore file
│ updated .gitignore file
│
🎉 Your project is now setup to deploy to Cloudflare
You can now deploy with npm run deploy
フレームワークがAstroとして検出され、@astrojs/cloudflareアダプタの導入まで自動で行われました。生成されたwrangler.jsoncは以下の内容です。
{
"compatibility_date": "2026-04-03",
"compatibility_flags": ["global_fetch_strictly_public"],
"name": "astro-app",
"main": "@astrojs/cloudflare/entrypoints/server",
"assets": {
"directory": "./dist",
"binding": "ASSETS"
},
"observability": {
"enabled": true
}
}
astro.config.mjsにもCloudflareアダプタが自動で追加されていました。
import { defineConfig } from 'astro/config';
import cloudflare from '@astrojs/cloudflare';
export default defineConfig({
adapter: cloudflare()
});
package.jsonのscriptsにもdeployとpreviewが追加されています。
{
"scripts": {
"dev": "astro dev",
"build": "astro build",
"preview": "npm run build && wrangler dev",
"deploy": "npm run build && wrangler deploy"
}
}
ケース2: 静的サイト
public/index.htmlだけを持つ最小限のプロジェクトでも試してみました。
mkdir static-site && cd static-site
npm init -y
mkdir public
echo '<!DOCTYPE html><html><body><h1>Hello</h1></body></html>' > public/index.html
npm install wrangler --save-dev
npx wrangler setup --yes
⛅️ wrangler 4.80.0
───────────────────
Detected Project Settings:
- Worker Name: static-site
- Framework: Static
- Output Directory: public
📦 Install packages:
- wrangler (devDependency)
📝 Update package.json scripts:
- "deploy": "wrangler deploy"
- "preview": "wrangler dev"
📄 Create wrangler.jsonc:
{
"$schema": "node_modules/wrangler/config-schema.json",
"name": "static-site",
"compatibility_date": "2026-04-03",
"observability": {
"enabled": true
},
"assets": {
"directory": "public"
},
"compatibility_flags": [
"nodejs_compat"
]
}
🎉 Your project is now setup to deploy to Cloudflare
You can now deploy with npm run deploy
HTMLファイルを含むpublicディレクトリを自動検出し、Frameworkが「Static」として認識されました。Changelogによると、JekyllやHugoなどの静的サイトジェネレータのビルド出力にも対応しているようです。
ケース3: Hono(非対応フレームワーク)
Honoのcloudflare-workersテンプレートから作成したプロジェクトで、既存のwrangler.jsoncを退避してwrangler setupを実行してみました。
npm create hono@latest hono-app -- --template cloudflare-workers
cd hono-app
mv wrangler.jsonc wrangler.jsonc.bak
npx wrangler setup --yes
⛅️ wrangler 4.80.0
───────────────────
Detected Project Settings:
- Worker Name: hono-app
- Framework: Hono
- Build Command: npm run build
- Output Directory: dist
✘ [ERROR] The detected framework ("Hono") cannot be automatically configured.
Honoはフレームワークとして検出されますが、自動設定は非対応でした。Honoテンプレートにはもともとwrangler.jsoncが同梱されているため、実用上の影響は小さいです。
--dry-runで事前確認
wrangler setup --dry-runを使うと、実際にファイルを変更せずに、どのような設定が生成されるかを事前に確認できます。
npx wrangler setup --dry-run
出力内容はwrangler setupと同じですが、最後に以下のメッセージが表示され、ファイルは変更されません。
✋ Autoconfig process run in dry-run mode, existing now.
既存プロジェクトで試す際は、まず--dry-runで内容を確認してから実行するのが安心です。
Gitリポジトリ連携
Cloudflareダッシュボードからリポジトリ(GitHub/GitLab)を接続した際も、ゼロコンフィグデプロイが動作します。設定ファイルがないリポジトリに対して、Workers Buildsが自動でPRを作成してくれるようです。詳細は公式ドキュメントを参照ください。
制限事項・注意点
monorepo/ワークスペースへの対応は限定的
Wranglerはコマンドを実行したディレクトリのpackage.jsonを分析します。npm/yarn/pnpmのワークスペースでルートにインストールされた依存パッケージは検出されません。monorepoの場合は、対象プロジェクトのディレクトリで実行する必要があります。
自動設定非対応のフレームワーク
前述のとおり、HonoなどのAPIフレームワークは自動設定の対象外です。検出はされるものの、設定ファイルの自動生成はできません。対応フレームワーク一覧に含まれないものは従来どおり手動で設定する必要があります。
既存の設定ファイルがある場合
プロジェクトにwrangler.toml、wrangler.json、wrangler.jsoncのいずれかが存在する場合、自動設定は実行されませんでした。再度自動設定を行いたい場合は、既存の設定ファイルを削除してから実行する必要があります。
複数フレームワークの検出
公式ドキュメントによると、1つのプロジェクトで複数のフレームワークが検出された場合、ローカル実行ではどのフレームワークを使うか選択を促されます。ただし、ダッシュボード経由のリポジトリインポートでは対話的な選択ができないため、エラーになります。
まとめ
Wranglerのゼロコンフィグデプロイを試してみました。
AstroやNext.jsなどのフルスタックフレームワークを使っている場合、アダプタのインストールからwrangler設定ファイルの生成まで自動で行ってくれるため、Cloudflare Workersへのオンボーディングの手間が減ります。静的サイトもindex.htmlがあれば自動検出されるので、既存の静的サイトをWorkersに移行する際にも手軽です。
一方で、HonoのようなAPIフレームワークや素のWorkerプロジェクトは対象外のため、すべてのケースで万能というわけではありません。また、monorepo環境での制約もあるため、プロジェクト構成によっては従来どおりの手動設定が必要です。
まずはwrangler setup --dry-runで自分のプロジェクトがどう認識されるか確認してみるのが良さそうです。
誰かの参考になれば幸いです。









