构建
Bindings、环境与 Secrets
把资源绑定、普通变量和密钥分开,并避免环境配置未继承造成的线上故障。
编辑与核验:橙宝书编辑团队 ·
BUILD进阶20 分钟最后核验:2026-08-26
三类配置不要混放
| 类型 | 示例 | 是否进仓库 |
|---|---|---|
| 资源 Binding | env.DB、env.BUCKET、env.AI | 配置名可以;真实资源 ID 视仓库策略 |
| 普通变量 | 功能开关、公开基础 URL | 可以,但要当公开信息 |
| Secret | API Token、签名密钥 | 不可以;用 wrangler secret 或 Secret Store |
Bindings 不是把密钥塞进全局变量,而是由 Workers runtime 通过 env 提供资源能力。对 TypeScript 项目,修改 Wrangler 配置后运行 wrangler types,让绑定名的错误在构建期暴露。
环境继承陷阱
bindings、vars 和 secrets 在 Wrangler environments 中不继承。staging 与 production 必须分别声明需要的配置;不要假设顶层 DB 会自动出现在子环境。
{
"name": "notes-api",
"compatibility_date": "2026-08-25",
"vars": { "APP_MODE": "development" },
"env": {
"production": {
"vars": { "APP_MODE": "production" }
}
}
}上例只演示普通变量。生产环境需要的 D1/R2/AI bindings 仍应在该环境显式声明。
本地密钥
.dev.vars 与 .env 选择一种工作流,不要同时维护。两者都应加入忽略规则;提交 .dev.vars.example 时只放占位符。
泄露处置
如果真实 Token 已进入 Git 历史,删除当前文件不等于撤销泄露。先吊销/轮换,再清理历史并审计使用记录。
检查点
pnpm wrangler types
pnpm wrangler dev --env production第二条只应针对安全的本地/预览资源;不要让本地验证误连生产数据库。
官方来源
这篇内容帮你完成目标了吗?
内测反馈只在当前浏览器生成,不会自动上传。