Emdash CMS 部署命令上下文 FAQ

在 monorepo、樣板衍生與獨立專案佈局中,應在何處執行 Emdash CMS 的部署命令。

部署命令到底該在哪執行?

預設規則:在目標網站專案根目錄執行。
目錄不對時,指令、設定與繫結常解析到錯誤上下文。

什麼算「目標專案根」?

通常同時具備:

  • 專案專屬的 package.json
  • 網站專屬的 astro.config.*
  • wrangler.jsonc(Cloudflare 流程)

三者齊全時,多半處於正確部署上下文。

monorepo、樣本副本與獨立專案有何不同?

獨立專案

最直接:所有命令在同一目錄執行。

樣板衍生專案

從樣板複製後,先更新專案 name、指令與繫結,再執行部署命令。

Monorepo

部署前先進入具體應用套件;除非指令稿明確代理到該套件,否則不要在 monorepo 根目錄執行應用部署命令。

最常見的「目錄錯誤」表現?

  • 找不到部署指令稿(實際在子目錄)
  • 缺少 wrangler.jsonc 或載入錯誤檔案
  • 繫結名稱不一致(用了另一專案的設定)
  • 建置通過但部署指向錯誤 Worker 名稱

多數是上下文問題,而不是命令語法問題。

20 秒快速預檢

執行部署命令前:

  1. 確認 pwd 指向預期專案。
  2. 確認 package.jsonname 與目標網站一致。
  3. 確認 wrangler.jsonc 中的 name、D1、R2 等與目標環境一致。

這比反覆重試命令更省時間。

能混用多種套件管理器嗎?

不建議。
同一套部署流程只使用一種套件管理器,避免 lockfile 漂移與相依解析不一致。

團隊如何避免上下文錯誤?

建議:

  • 在 README 中寫明命令所在目錄
  • 在關鍵指令稿中加入預檢
  • 在 CI 中加入路徑一致性檢查

多數部署失敗不是平台深層問題,而是未言明的命令上下文假設。

實用命令片段

pwd
ls
npm run build
npm run deploy