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`を使用します。
コマンドオプション
次のオプションを使用してバンドルプロセスをカスタマイズできます:
| オプション | 説明 |
|---|---|
--zip | バンドラーにzipモードの使用を強制します。 |
--simple | バンドラーにシンプルモードの使用を強制します。 |
--compact | バンドラーに最小ビルドのためのコンパクトモードの使用を強制します。 |
--create-release | バンドル後、.blockletディレクトリから配布可能な.tgzリリースターボールを作成します。 |
--create-archive | --create-releaseと併用すると、バンドルの.zipアーカイブも生成します。 |
--changelog <boolean> | バンドルにチェンジログ情報を含めるかどうかを切り替えます。デフォルトはtrueです。 |
--monorepo | Blockletがモノレポの一部であることを指定し、それに応じてファイル解決を調整します。 |
--source-map | (コンパクトモードのみ) バンドルされたコードのソースマップを生成します。 |
--nosources-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のバンドルが成功したら、次のステップはバージョン管理を行い、配布の準備をすることです。詳細については、次のセクションに進んでください。