wrangler deploy 为什么部署出来和我想的不一样?
配置里有多个环境时,直接 wrangler deploy 部署的是顶层环境,不是你以为的那个。我在本地跑 --dry-run,它会打印警告。
部署结果和预期不一致,通常是这四个原因之一:忘了传 --env、绑定没在环境里重新声明、dashboard 上的改动被配置覆盖、Cron 触发器只是注释掉而没有清空。
它们有一个共同点:你以为配置文件说了算,但实际生效的是另一个层面。下面逐个看。
为什么部署到了错误的环境?
配置里有多个环境时,不带参数部署的是顶层环境。本地 --dry-run 实测会打印警告。CI 里一律显式传环境:
npx wrangler deploy --env production为什么环境里的绑定运行时才报错?
环境不继承绑定,漏写的绑定在运行时才报错,而不是部署时。细节见 wrangler 与绑定。
为什么我在 dashboard 改的变量和路由又没了?
wrangler deploy 默认用配置覆盖 dashboard 上改过的变量与路由。需要保留变量用 --keep-vars。官方文档的思路是把配置文件当唯一事实来源,这样最省事。
为什么注释掉 Cron 触发器还在跑?
注释掉不等于关闭。官方配置页说,要写 crons = [] 才会清空。
出了问题想退回去,见 Cloudflare Workers 部署出问题了,怎么回滚?。
多环境未指定--env时的警告,我在本地用wrangler deploy --dry-run看到过。环境不继承绑定、--keep-vars的覆盖行为和crons = []来自 2026 年 10 月的官方文档,我没有在线上验证。行为会变化,以官方文档为准。