功能說明
執行乾式部署(dry-run)並檢查實際上會上傳哪些檔案,讓你在部署上線前就能發現建置目標錯誤、過大的 bundle,或是將依賴的二進位檔案誤當成靜態資產上傳等問題。
必要條件
- 確保
wrangler和node在PATH中 - 專案根目錄需有
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(它包含本地狀態,可能含有 Token):test -f .gitignore && grep -qxF '.wrangler/' .gitignore || echo "WARN: .wrangler/ not gitignored" -
執行預檢(乾式部署 + 上傳檢查):
bash scripts/preflight.sh -
執行秘密檢查:
bash scripts/check-secrets.sh -
只有當兩項檢查都通過時,才進行部署:
wrangler deploy
不可預設
- 永遠不要預設
wrangler deploy的目標是 Pages 而非 Workers(或相反)。部署前請在wrangler.toml中確認目標。 - 永遠不要假設建置輸出目錄是正確的——wrangler 會自動偵測,但可能選錯目錄。請檢查乾式部署的輸出路徑。
- 永遠不要假設
node_modules和workerd二進位檔案不會被當作靜態資產上傳。請檢查乾式部署的結果。 - 永遠不要輸出秘密。如果任何步驟印出了
${{ secrets.* }}或 Token,請視為洩漏:回報CREDENTIAL_LEAK並立即停止。 - 永遠不要提交
.wrangler/或.dev.vars。
輸出結果
乾式部署的大小報告、任何洩漏的二進位檔案清單,以及通過/失敗的評斷。除非兩項檢查都通過,否則不會進行部署。
失敗處理
wrangler缺失 → 回報MISSING_DEP: wrangler,停止。- 乾式部署失敗 → 直接輸出 wrangler 的 stderr,不要盲目重試。
ASSET_LEAK→ 停止,修正建置,重新執行。不要部署。CREDENTIAL_LEAK→ 輪換憑證,然後重新執行。