dfx build
使用 dfx build
命令将您的程序编译成可以部署在 Internet Computer 上的 WebAssembly 模块。
您可以使用此命令编译在项目的`dfx.json` 配置文件或特定容器中为项目定义的所有程序。
请注意,您只能从项目目录结构中运行此命令。
例如,如果您的项目名称是 hello_world
,那么您当前的工作目录必须是 hello_world
顶级项目目录或其子目录之一。
dfx build
命令使用您在 dfx.json
配置文件的 canisters
部分下配置的信息查找要编译的源代码。
标志
您可以在 dfx build
命令中使用以下可选标志。
标志 | 说明 |
---|---|
|
使用临时的、硬编码的、本地定义的容器标识符构建容器,以测试您的程序在不连接到 Internet Computer platform 的情况下编译。 |
|
显示帮助信息。 |
|
显示版本信息。 |
选项
您可以为 dfx build
命令指定以下选项。
选项 | 说明 |
---|---|
|
指定要连接的网络别名或 URL。 您可以使用此选项覆盖在 |
参数
您可以为 dfx build
命令指定以下参数。
参数 | 描述 |
---|---|
|
构建项目的 |
|
指定要构建的容器的名称。
如果您没有使用 |
例子
您可以使用 dfx build
命令从 canisters
键下的 dfx.json
配置文件中指定的程序构建一个或多个 WebAssembly 模块。
例如,如果你的 dfx.json
配置文件定义了一个 hello_world
容器和一个 hello_world_assets
容器,那么运行 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.2",
"networks": {
"local": {
"bind": "127.0.0.1:8000",
"type": "ephemeral"
},
"ic": {
"providers": [
"https://gw.dfinity.network"
],
"type": "persistent"
}
},
"version": 1
}
请注意,文件系统上程序的文件名和路径必须与 dfx.json
配置文件中指定的信息匹配。
在此示例中,hello_world
容器包含主程序代码,hello_world_assets
容器存储前端代码和资产。
如果要保留 dfx.json
文件中定义的 hello_world_assets
容器,但只构建后端程序,可以运行以下命令:
dfx build hello_world
当您在 dfx.json 文件中定义了多个容器,但想要独立测试和调试容器的操作时,构建特定容器非常有用。
要测试容器是否在不连接到 Internet Computer platform 或本地容器执行环境的情况下编译,您将运行以下命令:
dfx build --check