blocklet deploy 命令是将 Blocklet 从本地开发环境推送到正在运行的 Blocklet Server 实例的直接途径。这对于在预发布环境中进行测试或直接部署到生产环境至关重要。该命令一步即可处理项目的打包、版本控制和上传。
主要有两种部署方式:部署到本地服务器进行开发和测试,或部署到远程服务器进行预发布或生产。
命令用法
部署命令的基本语法是:
Basic Usage
blocklet deploy <directory> [options]<directory>:你的 Blocklet 项目根目录的路径。你可以使用.来指定当前目录。
部署场景
1. 部署到本地服务器
当你在本地机器上运行 Blocklet Server 时,部署过程非常简单。CLI 会自动检测正在运行的服务器,为该操作生成一个临时访问密钥,并处理部署,无需手动配置。
这是快速开发和测试的推荐工作流程。
Deploying Locally
# 首先,确保你的本地 Blocklet Server 正在运行
blocklet server start
# 导航到你的 Blocklet 项目并部署
cd /path/to/my-blocklet
blocklet deploy . --app-id <your-local-app-did>CLI 会找到正在运行的服务器,部署 Blocklet,然后撤销它使用的临时访问密钥。
2. 部署到远程服务器
部署到远程服务器需要指定服务器的端点并提供身份验证凭据。
方法 A:使用访问密钥和密钥密码
如果你有访问密钥和密钥密码,你可以将它们直接作为命令行选项提供。这种方法非常适合无法进行用户交互的 CI/CD 环境。
Deploying with Access Keys
blocklet deploy . \
--endpoint https://my-server.arcblock.io \
--access-key 'your_access_key_id' \
--access-secret 'your_access_key_secret' \
--app-id z2qa9sD2tFAP8gM7C1i8iETg3a1T3A3aT3bQ方法 B:使用 DID Connect 进行身份验证
如果你不提供访问密钥和密钥密码,CLI 将使用 DID Connect 启动一个安全的身份验证过程。这是一种用户友好的方法,适用于从你的开发机器进行手动部署。
Deploying with DID Connect
blocklet deploy . \
--endpoint https://my-server.arcblock.io \
--app-id z2qa9sD2tFAP8gM7C1i8iETg3a1T3A3aT3bQ当你运行此命令时,CLI 会提示你打开一个网页以生成新的访问密钥。在使用 DID Wallet 进行身份验证后,密钥会安全地发送到 CLI 并保存在本地,以便将来部署到同一应用程序时使用。
此流程如下图所示:

命令选项
- --endpoint
string— 远程 Blocklet Server 的 URL。远程部署时需要。 - --access-key
string— 用于与远程服务器进行身份验证的访问密钥 ID。 - --access-secret
string— 用于身份验证的访问密钥密码。 - --app-id
string(required) — 此 Blocklet 将作为组件部署到的根应用的 DID。如果未提供此项,CLI 将抛出错误。你也可以使用 --app-did。 - --mount-point
string— Blocklet 可访问的 URL 路径(例如,/my-component)。如果未提供,则会根据 Blocklet 的标题或名称生成一个默认值。 - --incremental
boolean— 启用增量部署。CLI 会将本地文件哈希与服务器进行比较,只上传已更改的文件,从而显著加快部署过程。
部署输出
在部署期间,CLI 会提供有关正在处理的文件的反馈。如果你使用 --incremental 标志,它将显示哪些文件是新增、更改或删除的。
Example Deployment Output
ℹ 信息: 尝试将 My Blocklet@1.0.0 从 /path/to/my-blocklet 部署到服务器 https://my-server.arcblock.io 中的 My App。
ℹ 信息: 使用默认挂载点: /my-blocklet
ℹ 信息: 增量模式,正在获取 Blocklet 差异...
ℹ 信息: 名称: my-blocklet
ℹ 信息: DID: z8iZp329XWHe7iMqtTVmFobb82E9CR4X3sKAU
ℹ 信息: 版本: 1.0.0
ℹ 信息: 新增文件: 2
- new-feature.js
- assets/icon.png
ℹ 信息: 变更文件: 1
- blocklet.yml
ℹ 信息: 删除文件: 0
⠙ 正在上传 my-blocklet...
✔ 成功: My Blocklet@1.0.0 已成功部署到服务器 https://my-server.arcblock.io 中的 My App。成功部署后,你的 Blocklet 将在目标 Blocklet Server 上运行。