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