跳到主要內容

部署 Blocklet

blocklet deploy 命令是您將 blocklet 從本地開發環境推送到正在運行的 Blocklet Server 實例的直接途徑。這對於在預備環境中測試或直接部署到生產環境至關重要。該命令一步完成捆綁、版本控制和上傳您的專案。

部署主要有兩種方式:部署到本地伺服器進行開發和測試,或部署到遠端伺服器進行預備或生產。

命令用法

deploy 命令的基本語法是:

基本用法

bash
blocklet deploy <directory> [options]
  • <directory>:您的 blocklet 專案根目錄的路徑。您可以使用 . 來指定當前目錄。

部署情境

1. 部署到本地伺服器

當您在本地機器上運行 Blocklet Server 時,部署過程非常直接。CLI 會自動偵測正在運行的伺服器,為該操作生成一個臨時存取金鑰,並處理部署,無需手動設定。

這是快速開發和測試的推薦工作流程。

本地部署

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 環境。

使用存取金鑰部署

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 啟動一個安全的身份驗證過程。這是一種從您的開發機器手動部署的用戶友好方法。

使用 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 旗標,它將顯示哪些檔案是新增、已更改或已刪除的。

部署輸出範例

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 商店,以供其他使用者使用。

了解更多