blocklet deploy 命令是您將 blocklet 從本地開發環境推送到正在運行的 Blocklet Server 實例的直接途徑。這對於在預備環境中測試或直接部署到生產環境至關重要。該命令一步完成捆綁、版本控制和上傳您的專案。
部署主要有兩種方式:部署到本地伺服器進行開發和測試,或部署到遠端伺服器進行預備或生產。
命令用法
deploy 命令的基本語法是:
基本用法
blocklet deploy <directory> [options]<directory>:您的 blocklet 專案根目錄的路徑。您可以使用.來指定當前目錄。
部署情境
1. 部署到本地伺服器
當您在本地機器上運行 Blocklet Server 時,部署過程非常直接。CLI 會自動偵測正在運行的伺服器,為該操作生成一個臨時存取金鑰,並處理部署,無需手動設定。
這是快速開發和測試的推薦工作流程。
本地部署
# 首先,確保您的本地 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 環境。
使用存取金鑰部署
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 部署
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 旗標,它將顯示哪些檔案是新增、已更改或已刪除的。
部署輸出範例
ℹ 資訊:嘗試將 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 上運行。