build runner库的使用
2022年10月12日大约 2 分钟
Fair 源码中用到了 build_runner,因此,本文主要介绍一下 build_runner 库的使用。
1. build_runner 库的介绍
build_runner 提供了一些用于生成文件的通用命令,这些命令中有的可以用于测试生成的文件,有的可以用于对外提供生成的文件以及它们的源代码。
build_runner 的命令需要与使用 Dart 编译系统 从输入文件生成输出文件的生成器 Package 配合使用。例如,json_serializable 与 built_value_generator 这两个 Package 共同定义了生成 Dart 代码的生成器。
Fair 源码中 FairCompiler 生成 FairDSL 就使用了 build_runner。
2. build_runner 库的使用
2.1 添加 build_runner 依赖
dev_dependencies:
# ···
build_runner: ^2.1.0
build_test: ^2.1.0
依赖项 build_test 是可选的;可用于代码测试。
2.2 使用 build_runner build 命令
# 从含有 pubspec.yaml 文件的目录执行下述命令:
dart run build_runner build # Dart SDK
flutter pub run build_runner build # Flutter SDK
2.3 build_runner 内置命令
build_runner 中包含下述几个命令:
- build 命令:处理一次性构建。
- serve 命令:运行一个用于开发的服务器。可以使用 webdev serve 替代该命令,它会包含一些方便的默认功能。
- test 命令:用于运行测试
- watch 命令:启动一个 build server 用于监听输入文件的编辑。通过处理增量重建来响应代码的修改。
3. build_runner 如何debug
查看 Fair 源码时,对 Fair DSL 的生成感兴趣,就需要对 Fair Compile 过程 debug。下面介绍下如何对 build_runner deubg(以Android Studio为例)。
- 执行 flutter pub run build_runner build
- 拷贝 build.dart 文件到项目根目录下
- 配置Run/Debug Configurations
- 点击 debug,就可以愉快的 debug Fair Compile 的过程了。