Emdash CMS 部署命令上下文 FAQ
在 monorepo、樣板衍生與獨立專案佈局中,應在何處執行 Emdash CMS 的部署命令。
部署命令到底該在哪執行?
預設規則:在目標網站專案根目錄執行。
目錄不對時,指令、設定與繫結常解析到錯誤上下文。
什麼算「目標專案根」?
通常同時具備:
- 專案專屬的
package.json - 網站專屬的
astro.config.* wrangler.jsonc(Cloudflare 流程)
三者齊全時,多半處於正確部署上下文。
monorepo、樣本副本與獨立專案有何不同?
獨立專案
最直接:所有命令在同一目錄執行。
樣板衍生專案
從樣板複製後,先更新專案 name、指令與繫結,再執行部署命令。
Monorepo
部署前先進入具體應用套件;除非指令稿明確代理到該套件,否則不要在 monorepo 根目錄執行應用部署命令。
最常見的「目錄錯誤」表現?
- 找不到部署指令稿(實際在子目錄)
- 缺少
wrangler.jsonc或載入錯誤檔案 - 繫結名稱不一致(用了另一專案的設定)
- 建置通過但部署指向錯誤 Worker 名稱
多數是上下文問題,而不是命令語法問題。
20 秒快速預檢
執行部署命令前:
- 確認
pwd指向預期專案。 - 確認
package.json的name與目標網站一致。 - 確認
wrangler.jsonc中的name、D1、R2 等與目標環境一致。
這比反覆重試命令更省時間。
能混用多種套件管理器嗎?
不建議。
同一套部署流程只使用一種套件管理器,避免 lockfile 漂移與相依解析不一致。
團隊如何避免上下文錯誤?
建議:
- 在 README 中寫明命令所在目錄
- 在關鍵指令稿中加入預檢
- 在 CI 中加入路徑一致性檢查
多數部署失敗不是平台深層問題,而是未言明的命令上下文假設。
實用命令片段
pwd
ls
npm run build
npm run deploy