dfx build(ビルド)
Internet Computer にデプロイできるようにプログラムを WebAssembly モジュールにコンパイルするには dfx build
コマンドを使用します。
このコマンドはプロジェクトの dfx.json
設定ファイルや特定の Canister に定義されているすべてのプログラムをコンパイルするために使用することができます。
このコマンドはプロジェクトのディレクトリ構造内からのみ実行できることに注意してください。
例えばプロジェクト名が hello_world
の場合、現在の作業ディレクトリは hello_world
のトップレベルのプロジェクトディレクトリかそのサブディレクトリのいずれかでなければなりません。
dfx build
コマンドは設定ファイル dfx.json
の canisters
セクションで設定された情報を元に、コンパイルするソースコードを探します。
フラグ
dfx build
コマンドでは、以下のオプションフラグを使用することができます。
Flag(フラグ) | 説明 |
---|---|
|
Internet Computer プラットフォームに接続せずにプログラムのコンパイルをテストします。一時的なハードコードされたローカル定義の Canister id を使用して Canister を構築します。 |
|
利用情報を表示します。 |
|
バージョン情報を表示します。 |
オプション
dfx build
コマンドには以下のオプションを指定することができます。
Option(オプション) | 説明 |
---|---|
|
接続したいネットワークのエイリアスまたは URL を指定します。このオプションを使用すると |
引数
dfx build
コマンドには以下の引数を指定することができます。
Argument(引数) | 説明 |
---|---|
|
プロジェクトの |
|
ビルドしたい Canister の名前を指定します。
|
例
dfx build
コマンドを使うと dfx.json
設定ファイルの canisters
キーで指定したプログラムからひとつまたは複数の WebAssembly モジュールをビルドすることができます。
例えば、dfx.json
設定ファイルに hello_world
Canister と hello_world_assets
Canister がひとつずつ定義されている場合、 dfx build
を実行すると二つの WebAssembly モジュールがコンパイルされます:
{
"canisters": {
"hello_world": {
"main": "src/hello_world/main.mo",
"type": "motoko"
},
"hello_world_assets": {
"dependencies": [
"hello_world"
],
"frontend": {
"entrypoint": "src/hello_world_assets/public/index.js"
},
"source": [
"src/hello_world_assets/assets",
"dist/hello_world_assets/"
],
"type": "assets"
}
},
"defaults": {
"build": {
"packtool": ""
}
},
"dfx": "0.9.3",
"networks": {
"local": {
"bind": "127.0.0.1:8000",
"type": "ephemeral"
},
"ic": {
"providers": [
"https://gw.dfinity.network"
],
"type": "persistent"
}
},
"version": 1
}
ファイルシステム上のプログラムのファイル名とパスは、dfx.json
設定ファイルで指定された情報と一致する必要があることに注意してください。
この例では、 hello_world
Canister にメインプログラムのコードが hello_world_assets
Canister にフロントエンドのコードとアセットが格納されています。
もし、dfx.json
ファイルで定義された hello_world_assets
Canister はそのままにして、バックエンドのプログラムだけをビルドしたい場合は、以下のコマンドを実行すれば可能です:
dfx build hello_world
特定の Canister をビルドすることは dfx.json ファイルに複数の Canister が定義されていて、Canister に対する操作を個別にテストおよびデバッグしたい場合に便利です。
Internet Computer プラットフォームやローカルの Canister 実行環境に接続せずに Canister がコンパイルされるかどうかをテストするには、以下のコマンドを実行します:
dfx build --check