功能
运行模拟部署并检查实际会上传的内容,以便在发布前捕获构建目标错误、包体积过大或依赖二进制文件被错误地作为静态资产上传的问题。
前提条件
PATH中包含wrangler和node- 项目根目录下有
wrangler.toml(或wrangler.jsonc)文件 - Cloudflare 凭据对
wrangler可用(通过环境变量,而非提交)
验证环境
在执行任何操作前运行:
command -v wrangler && command -v node
如果缺少任一程序,请停止并报告:MISSING_DEP: wrangler。
逐步操作
-
确认 wrangler 配置文件存在:
test -f wrangler.toml || test -f wrangler.jsonc如果都不存在,则报告
MISSING_CONFIG: wrangler.toml。 -
确认
.wrangler/已被.gitignore忽略(它存储本地状态,也可能包含令牌):test -f .gitignore && grep -qxF '.wrangler/' .gitignore || echo "WARN: .wrangler/ 未被 gitignore" -
运行预检(模拟部署 + 上传检查):
bash scripts/preflight.sh -
运行秘密检查:
bash scripts/check-secrets.sh -
仅当两项检查都通过时,才进行部署:
wrangler deploy
禁止假设
- 切勿假设
wrangler deploy的目标是 Pages 而非 Workers,反之亦然。在部署前,请确认wrangler.toml中的目标。 - 切勿假设构建输出目录是正确的——wrangler 会自动发现,并可能选错目录。请检查模拟部署的输出路径。
- 切勿假设
node_modules和workerd二进制文件被排除在静态资产上传之外。请检查模拟部署。 - 切勿回显秘密。如果任何步骤打印出
${{ secrets.* }}或令牌,请将其视为泄露:报告CREDENTIAL_LEAK并停止。 - 切勿提交
.wrangler/或.dev.vars。
输出
模拟部署的大小报告、泄露二进制文件的列表,以及通过/失败判定。只有在两项检查都通过时才会进行部署。
失败处理
wrangler缺失 → 报告MISSING_DEP: wrangler,停止。- 模拟部署失败 → 直接输出 wrangler 的 stderr,不要盲目重试。
ASSET_LEAK→ 停止,修复构建,重新运行。不要部署。CREDENTIAL_LEAK→ 轮换凭据,然后重新运行。