Jamdesk Documentation logo

CLI 部署

了解 jamdesk deploy 命令如何打包、上传并构建你的文档,包括参数、构建阶段和错误代码。

deploy 命令会打包你的文档,将其上传到 Jamdesk,并从终端触发构建。适用于快速迭代、测试修改,或未连接 GitHub 仓库的项目。

快速开始

jamdesk login        # First time only
jamdesk deploy       # From your project directory

选项

参数说明
--detach将构建加入队列后立即退出(会打印仪表板链接)
--full-rebuild强制完整重新构建,跳过构建缓存
--project <id>部署到指定的项目 ID(跳过交互式选择)
--allow-empty允许部署零个 .mdx 内容页面的项目。默认情况下 CLI 会拒绝部署空项目,以防止错误的工作目录发布空站点。代码片段不计入内容页面
-m, --message <text>对 jamdesk pull 生成的文件夹中未提交更改的提交信息(默认值:"Update docs")
--allow-secret-files发布 jamdesk pull 生成的文件夹中名称看起来像机密的文件

jamdesk push 是 jamdesk deploy 的别名。

工作原理

1
身份验证

验证你的会话。令牌过期时会提示你运行 jamdesk login。

2
加载配置

读取并验证当前目录中的 docs.json。

3
确定项目

从 docs.json 读取 projectId。首次部署时它不存在,CLI 会提示你选择一个项目,并将你的选择保存到 docs.json。下次部署将跳过该提示。

使用 --project <id> 可覆盖。

4
打包文件

创建文档的压缩 tar 包。.gitignore 中的文件会被排除。CLI 会对看起来像机密的文件发出警告,但该警告不会阻止上传。

5
上传

通过预签名 URL 将 tar 包发送到 Jamdesk。最大上传大小为 100 MB。

6
构建

将构建加入队列并轮询状态。每个阶段完成时都会打印。按 Ctrl+C 可停止轮询,构建将在后台继续。

7
完成

构建完成后打印实时 URL。

不使用 GitHub 的项目

对于由 Jamdesk 托管文档的项目(不使用 GitHub 的文档),需要在 jamdesk pull 生成的文件夹中运行 deploy。在该文件夹中,deploy 会跳过上述 tar 包步骤,转而:

  1. 检查你的更改,并在提交任何内容之前拒绝发布不应发布的文件,例如 .github 文件、看起来像机密的文件,以及超过 25 MB 的文件。
  2. 提交你未提交的更改。使用 -m 设置提交信息。
  3. 上传新的提交(最大 100 MB),Jamdesk 会将其添加到你的文档中。
  4. 启动构建并显示每个阶段。

Deploy 可在任意子文件夹中运行,且从不修改 docs.json。--full-rebuild 和 --allow-empty 在此文件夹中不适用,且 --project 必须指向该文件夹自身的项目。与普通部署中的警告不同,看起来像机密的文件会使部署停止,除非你添加 --allow-secret-files。

如果 Jamdesk 上有你尚未获取的更改(来自编辑器或团队成员),deploy 会停止并保留你的提交。运行 jamdesk pull,然后再次运行 jamdesk deploy。有关冲突及被拒绝文件的完整列表,请参阅在你的计算机上编辑。

错误代码解决方法
Jamdesk 上有你尚未获取的更改HOSTED_STALEjamdesk pull,然后 jamdesk deploy
未发布任何内容PUSH_REFUSED删除或修复列出的文件,然后重新部署
合并或变基尚未完成MERGE_IN_PROGRESS解决冲突并提交,或运行 git merge --abort
文件夹位于错误的分支WRONG_BRANCH使用 git switch 切换到消息中指定的分支
无法提交你的更改COMMIT_FAILED在该文件夹中运行 git commit 以查看原因
Jamdesk 无法确认发布PUSH_UNCONFIRMED运行 jamdesk pull 进行检查,然后重新部署
项目不再由 Jamdesk 托管NOT_HOSTED使用 deploy 打印的命令推送到你的 GitHub 仓库

构建阶段

CLI 在轮询时会按顺序打印每个阶段:

阶段说明
提取文件解压已上传的 tar 包
验证配置检查 docs.json 的架构和内容
准备内容处理 MDX 文件和资源
构建文档编译页面并生成静态产物
上传到 CDN将构建输出推送到边缘网络
刷新缓存清除 CDN 上的过期内容

文件排除

无论你的 .gitignore 如何设置,以下内容始终会从上传中排除:

.git、node_modules、.next、.env、.env.*、*.pem、*.key、credentials.json、.gcloud、.DS_Store、Thumbs.db

.gitignore 中列出的所有内容也会被排除。

机密文件警告

当 CLI 检测到看起来像机密的文件时会发出警告(但不会阻止):

  • .env 和 .env.* 文件
  • *.pem 和 *.key 文件
  • credentials.json
  • service_account*.json
  • 以 secret 开头的文件

将它们添加到 .gitignore 可以消除警告,并将其排除在上传之外。

错误参考

错误代码原因解决方法
未登录AUTH_REQUIRED没有已保存的凭据jamdesk login
会话已过期AUTH_EXPIRED令牌刷新失败jamdesk login
访问被拒绝FORBIDDEN不是该项目的成员在仪表板中检查项目成员资格
未找到项目NOT_FOUND项目 ID 无效核对 ID,或从 docs.json 中删除 projectId
构建进行中BUILD_IN_PROGRESS另一个构建正在运行等待或在仪表板中查看
上传过大TOO_LARGE服务器拒绝上传(100 MB 限制)通过 .gitignore 排除大文件
项目过大PROJECT_TOO_LARGE打包时 tar 包超过 100 MB通过 .gitignore 排除大文件
没有项目NO_PROJECTS你的账户中没有项目先在仪表板中创建项目
没有文件EMPTY_PROJECT所有文件都被排除检查 .gitignore
没有内容页面NO_CONTENT未找到 .mdx 内容页面(代码片段不计入)在你的文档目录中运行,或者如果确实需要发布空站点,请传入 --allow-empty
配置无效CONFIG_NOT_FOUNDdocs.json 缺失或无效在项目根目录运行,检查配置
上传失败UPLOAD_FAILED上传期间出现网络问题检查网络连接,重试
构建失败BUILD_FAILED构建服务错误在仪表板中查看构建日志

故障排除

每个项目一次只能运行一个构建。请等待当前构建完成。可在仪表板的 Deployments 下查看状态。

请在包含 docs.json 的目录中运行该命令。运行 jamdesk validate 检查配置错误。

100 MB 限制适用于所有未被排除的文件的压缩 tar 包。大型图片、视频或数据文件是常见原因。将它们添加到 .gitignore 即可排除。

按 Ctrl+C 退出。构建会在后台继续运行。请在仪表板中查看状态。如果卡住的情况反复出现,可能是网络丢弃了轮询请求。

你的 Jamdesk 账户中至少需要一个项目。请在 dashboard.jamdesk.com 创建一个。

更多 CLI 故障排除信息,请参阅帮助中心 CLI 指南。

接下来做什么?

部署工作流

GitHub 自动部署与部署状态

身份验证

登录流程、会话与故障排除