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