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