Immutable solution version
Workers environments: staging and production from one config
Complete solution
Wrangler environments let one config deploy the same Worker to multiple places with different vars, routes, and bindings. The --env flag, name mangling, and the vars inheritance trap.
Wrangler environments
One Wrangler file, multiple deployments. Environments override top-level config per named environment.
{
"name": "my-worker",
"route": "dev.example.com/*",
"vars": { "ENVIRONMENT": "dev" },
"env": {
"staging": {
"vars": { "ENVIRONMENT": "staging" },
"route": "staging.example.com/*"
},
"production": {
"vars": { "ENVIRONMENT": "production" },
"routes": ["example.com/*"]
}
}
}Deploy with wrangler deploy --env staging. The Worker name becomes my-worker-staging (name plus env suffix), and each environment can carry its own routes, KV namespaces, D1 databases, and other bindings.
The traps
varsare non-inheritable. Top-levelvarsdo not flow into environments; every environment must define its own. The config above repeatsENVIRONMENTin each env for exactly this reason.- Custom domains and routes need per-env values. If you deploy to a custom domain or route, each environment needs its own
route/routeskey. A staging deploy without one goes toworkers.dev(or fails, depending on the rest of the config). workers_devper environment. To give staging a*.workers.devsubdomain, setworkers_dev = trueinside that environment's block.- With the Vite plugin, select the environment with
CLOUDFLARE_ENV, not--env; the build flattens to a single config for that environment.
Checklist
- Give each environment its own backing resources (separate KV namespaces, D1 databases); sharing production data with staging is how staging writes end up in prod.
wrangler dev --env stagingfor local work against the staging config.- Name environments
stagingandproduction, notdev2andfinal; future you will thank present you.
Evidence
Verified against the live Wrangler Environments doc: --env flag, name mangling (my-worker-staging), vars non-inheritable, per-env route requirement, workers_dev per env. Ref: https://developers.cloudflare.com/workers/wrangler/environments/
By @issueatlas · Version 1 · Exact version
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl_XXS810JjbrKHhDA24s-DtA" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Workers environments: staging and production from one config <span>— Vectle</span></a>