blocklet bundle 指令是開發生命週期中的關鍵步驟。它會將您的 blocklet 的原始碼、資產和元數據打包到一個標準化的 .blocklet 目錄中,使其準備好進行部署或分發。
此過程會智慧地收集 blocklet.yml 中指定的所有必要檔案,包含生命週期腳本,並準備一個乾淨、優化的套件。
基本用法
要封裝您的 blocklet,只需導覽至專案的根目錄並執行以下指令:
Terminal
blocklet bundle此指令將在您的專案目錄中建立一個 .blocklet 資料夾,其中包含已封裝的應用程式。
封裝流程概覽
封裝過程涉及幾個關鍵步驟,以確保建立一個完整且有效的套件。

封裝模式
CLI 會根據您的 blocklet 設定(例如 group: 'static')自動選擇最佳的封裝模式。您也可以透過明確設定模式來覆寫此行為。
簡單模式
大多數 Node.js blocklet(例如 `group: 'dapp'` 或 `'gateway'`)的預設模式。它會將必要的檔案複製到 `.blocklet` 目錄中,而不會進行重大轉換。使用 `--simple` 來強制使用此模式。
Zip 模式
靜態 blocklet(`group: 'static'`)的預設模式。它會將主要應用程式碼封裝到 `.blocklet` 目錄內的 `blocklet.zip` 存檔中。這對於分發前端資產非常有效率。使用 `--zip` 來強制使用此模式。
緊湊模式
一種進階模式,可將 blocklet 及其相依套件封裝到最小檔案集合中。此模式透過建立更自給自足的建置版本,非常適合優化效能和套件大小。使用 `--compact` 來強制使用此模式。
指令選項
您可以使用以下選項自訂封裝過程:
| Option | Description |
|---|---|
--zip | 強制封裝器使用 zip 模式。 |
--simple | 強制封裝器使用 simple 模式。 |
--compact | 強制封裝器使用 compact 模式以進行最小化建置。 |
--create-release | 封裝後,從 .blocklet 目錄建立一個可分發的 .tgz 發行版 tarball。 |
--create-archive | 與 --create-release 一起使用時,它也會產生一個封裝的 .zip 存檔。 |
--changelog <boolean> | 切換是否在封裝中包含變更日誌資訊。預設為 true。 |
--monorepo | 指定 blocklet 是 monorepo 的一部分,並相應地調整檔案解析。 |
--source-map | (僅限緊湊模式) 為封裝後的程式碼產生 source map。 |
--nosources-source-map | (僅限緊湊模式) 產生 source map,但不嵌入原始碼。 |
--minify <boolean> | (僅限緊湊模式) 切換是否對輸出程式碼進行壓縮。預設為 true。 |
--external <dependency> | 從封裝中排除指定的相依套件。該相依套件預期由執行時環境提供。可多次使用。 |
--external-manager <manager> | 指定用於處理外部相依套件的套件管理器(例如 npm、yarn)。預設為 npm。 |
--dependencies-depth <number> | (僅限緊湊模式) 設定在解析外部模組時掃描相依套件的深度。預設為 9。 |
進階主題
處理外部相依套件
在 compact 模式下,封裝器會嘗試包含所有必要的相依套件。然而,某些套件(如 @blocklet/sdk 或 express)是由 Blocklet Server 執行時提供的。為防止它們被包含在您的封裝中並減小其大小,請使用 --external 旗標。
Terminal
# 排除單一相依套件
blocklet bundle --compact --external react
# 再次使用旗標以排除多個相依套件
blocklet bundle --compact --external react --external react-dom
# 使用逗號分隔的列表排除多個相依套件
blocklet bundle --compact --external react,react-dom包含額外檔案
封裝器會根據您的設定自動包含主要原始碼以外的檔案:
blocklet.yml中的files:blocklet.yml的files陣列中列出的任何檔案或 glob 模式都將被包含。- 生命週期腳本:在您的
scripts掛鉤(例如pre-start、post-stop)中引用的 JavaScript 檔案會被自動偵測並封裝。 - 遷移腳本:
migration/目錄中的所有腳本(例如migration/*.js)都將被包含以支援資料庫遷移。
成功封裝您的 blocklet 後,下一步是為其設定版本並準備分發。請繼續閱讀下一節以了解更多資訊。