OffにしたWorker URLがデプロイでOnに戻る。Wranglerに1行追加して解決した
Offにしたはずなのに、デプロイするとOnになる
前回の記事では、Cloudflare Workersで動かしているブログを独自ドメインで表示できるようにしました。
その後、Cloudflareの画面でWorker URLをOffにしたのですが、デプロイするとOnに戻ってしまいました。毎回手動でOffにするのは面倒なので、デプロイ後もOffを維持する方法を調べました。
解決方法は、プロジェクトの wrangler.jsonc に "workers_dev": false を追加することでした。
今回は、画面上の設定だけでは維持されなかった理由と、実際に変更・確認した内容をまとめます。
今回無効にしたのはworkers.devのURL
この記事でいうWorker URLは、次のような workers.dev のURLです。
https://<Worker名>.<サブドメイン>.workers.dev
独自ドメインとは別にWorkerへアクセスできるURLです。今回は、このURLを無効にしたままにしたいと考えていました。
workers_dev は、この workers.dev での公開を制御する設定です。Workerそのものを削除したり、独自ドメインのルートを削除したりする操作ではありません。Cloudflareのworkers.dev公式ドキュメント
画面の設定だけでは、次のデプロイで戻ってしまう
プロジェクトの設定を確認すると、wrangler.jsonc に workers_dev の指定がありませんでした。
Cloudflareの公式ドキュメントにも、ダッシュボードで workers.dev を無効にしても、Wranglerの設定ファイルに workers_dev = false を反映していなければ、次回のWranglerによるデプロイで再び有効になると説明されています。公式の無効化手順
画面でOffにしたことだけで完了だと思っていましたが、デプロイに使う設定ファイルにも、Offにする意図を残す必要がありました。
wrangler.jsoncに1行追加する
今回使っているのはJSONC形式の wrangler.jsonc です。トップレベルに、次の1行を追加しました。
"workers_dev": false
変更箇所を差分で見ると、次のとおりです。
{
"$schema": "node_modules/wrangler/config-schema.json",
"name": "bpacket",
+ "workers_dev": false,
"compatibility_date": "2026-09-21",
main や assets などの既存の設定はそのままに、この項目を追加します。
TOML形式の wrangler.toml を使っている場合は、トップレベルに次のように記述します。
workers_dev = false
JSONCでは :、TOMLでは = を使います。自分のプロジェクトのファイル形式に合わせて設定してください。
ビルド後の設定にも反映されているか確認する
このブログは、vinext+Cloudflare Workersの構成で動かしています。デプロイ時に使うのは、ビルドで生成される dist/server/wrangler.json です。
そのため、元の設定を書き換えた後、まずビルドしました。
npm run build
ビルドの成功後、生成された設定の値も確認しました。同じ構成なら、次のコマンドで値を確認できます。
node -e 'const fs = require("fs"); const config = JSON.parse(fs.readFileSync("dist/server/wrangler.json", "utf8")); console.log(config.workers_dev)'
出力が次の値になっていれば、生成された設定にも反映されています。
false
編集するのは元の wrangler.jsonc です。 ビルドで生成されるファイルだけを直接編集すると、次のビルドで変更が失われてしまいます。
なお、dist/server/wrangler.json という出力先は今回のプロジェクトのものです。別の構成では、実際のデプロイコマンドがどの設定ファイルを参照しているかを確認してください。
反映後、Cloudflare側でもOffを確認できた
設定変更をコミット・プッシュした後、Cloudflare側で確認すると、Worker URLは無事にOffになっていました。
今回確認した内容は、次の3つです。
- ローカルのビルドが成功したこと。
- デプロイに使う生成済み設定にも
workers_dev: falseが入っていること。 - 反映後のCloudflareの画面で、Worker URLがOffになっていること。
ローカルのファイルだけでなく、Cloudflare側の状態まで確認できたので、今回の設定変更が反映されたと判断できました。
デプロイ後も維持したい設定は、ファイルにも残す
今回の修正は1行でしたが、画面で変更した状態と、次のデプロイで適用される設定が一致しているとは限らないことを学びました。
同じようにWorker URLがOnへ戻ってしまう場合は、まずデプロイに使うWranglerの設定に workers_dev: false があるかを確認するとよさそうです。
この指定を維持し、その設定を使ってデプロイすることで、毎回画面からOffに戻す手間をなくせます。