跳到主要内容

部署 Blocklet

blocklet deploy 命令是将 Blocklet 从本地开发环境推送到正在运行的 Blocklet Server 实例的直接途径。这对于在预发布环境中进行测试或直接部署到生产环境至关重要。该命令一步即可处理项目的打包、版本控制和上传。

主要有两种部署方式:部署到本地服务器进行开发和测试,或部署到远程服务器进行预发布或生产。

命令用法

部署命令的基本语法是:

Basic Usage

bash
blocklet deploy <directory> [options]
  • <directory>:你的 Blocklet 项目根目录的路径。你可以使用 . 来指定当前目录。

部署场景

1. 部署到本地服务器

当你在本地机器上运行 Blocklet Server 时,部署过程非常简单。CLI 会自动检测正在运行的服务器,为该操作生成一个临时访问密钥,并处理部署,无需手动配置。

这是快速开发和测试的推荐工作流程。

Deploying Locally

bash
# 首先,确保你的本地 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

bash
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

bash
blocklet deploy . \
  --endpoint https://my-server.arcblock.io \
  --app-id z2qa9sD2tFAP8gM7C1i8iETg3a1T3A3aT3bQ

当你运行此命令时,CLI 会提示你打开一个网页以生成新的访问密钥。在使用 DID Wallet 进行身份验证后,密钥会安全地发送到 CLI 并保存在本地,以便将来部署到同一应用程序时使用。

此流程如下图所示:

Deploy Blocklet

命令选项

  • --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

bash
ℹ 信息: 尝试将 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 上运行。

下一步:上传到商店

一旦你的 Blocklet 部署和测试完成,了解如何将其上传到 Blocklet 商店,以便其他用户可以使用。

了解更多