目录

Contents

build_runner 命令

build_runner 这个 Package 提供了一些用于生成文件的通用命令,这些命令中有的可以用于测试生成的文件,有的可以用于对外提供这些生成的文件以及它们的源代码。通过本文以及本文结尾处更多信息中的相关链接你可以对 build_runner 以及如何使用它有一个大概的了解。至于如何针对某个特定 Package 使用 build_runner,你可以参考该 Package 的相关文档。

The build_runner package provides general-purpose commands for generating files, and for optionally testing the generated files or serving both source and generated files. Read this page for an overview of using build_runner, with links to where you can find more information. For details of using build_runner with a specific package, see the documentation for that package.

build_runner 的命令需要与使用 Dart 编译系统 从输入文件生成输出文件的生成器 Package 配合使用。例如,json_serializablebuilt_value_generator 这两个 Package 共同定义了生成 Dart 代码的生成器。

The build_runner commands work with builders—packages that use the Dart build system to generate output files from input files. For example, the json_serializable and built_value_generator packages define builders that generate Dart code.

Dart 的编译系统是反射(目前还有些性能问题)和宏指令(Dart 编译器还不支持)的替代方案,它可以做的不仅仅是用于读写 Dart 代码。例如,sass_builder 这个 Package 实现了用于从 .scss.sass 文件生成 .css 文件的生成器。

Although the Dart build system is a good alternative to reflection (which has performance issues) and macros (which Dart’s compilers don’t support), it can do more than just read and write Dart code. For example, the sass_builder package implements a builder that generates .css files from .scss and .sass files.

build_runner 设置

Setting up build_runner

在你应用 pubspec 文件的 dev dependency 层添加 build_runner 依赖以开启使用 build_runner:

To use build_runner, add a dev dependency on build_runner to your app’s pubspec:

  dev_dependencies:
    # ···
    build_runner: ^1.0.0
    build_test: ^0.10.3

依赖项 build_test 是可选的;但是它可以让你测试你的代码。

Depending on build_test is optional; do it if you’ll be testing your code.

像往常一样在你修改了 pubspec.yaml 文件后,记得运行 pub getpub upgrade 命令以令修改生效:

As usual after pubspec.yaml changes, run pub get or pub upgrade:

$ pub get

使用内置命令

Using built-in commands

build_runner 的命令使用方式取决于你当前使用的是 Dart SDK 还是 Flutter SDK。下面是使用 build_runner 中 build 命令的示例:

How you use the build_runner commands depends on whether you’re using the Dart SDK or the Flutter SDK. Here are examples of using the build_runner build command:

$ # 从含有 pubspec.yaml 文件的目录执行下述命令:
$ pub run build_runner build  # 使用 Dart SDK
$ flutter pub run build_runner build  #  使用 Flutter SDK

build_runner 中包含下述几个命令:

The build_runner package includes the following commands:

build
Performs a one-time build.

build 命令:处理一次性构建。

serve
Runs a development server. Instead of directly using this command, you can use webdev serve, which has convenient default behavior.

serve 命令:运行一个用于开发的服务器。你可以使用 webdev serve 替代该命令,它会包含一些方便的默认功能。

test
Runs tests.

test 命令:用于运行 测试

watch
Launches a build server that watches for edits to input files. Responds to changes by performing incremental rebuilds.

watch 命令:启动一个构建服务器用于监听输入文件的编辑。通过处理增量重建来响应代码的修改。

更多信息

More information

如果你编写的代码针对的是 Web 应用,请查阅 webdev 页面

If you’re working on web-specific code, see the webdev page.

你也可以通过下述链接查阅更多有关如何使用 build_runner 相关命令的信息:

For details on using build_runner, see the following: