8

我想在我的生成器代码上设置断点,但我不知道如何在调试模式下运行命令。

source_gen我使用and编写了生成器build_runner

class MyGenerator extends GeneratorForAnnotation<Todo> {
  @override
  FutureOr<String> generateForAnnotatedElement(
      Element element, ConstantReader annotation, BuildStep buildStep) {
    return "// Hey! Annotation found!";
  }
}
4

2 回答 2

11
  1. 运行命令flutter packages pub run build_runner build

  2. 复制build.dart到项目的根文件夹

在此处输入图像描述

3) 4) 添加新的运行配置 在此处输入图像描述 5) 运行调试,现在你可以调试你的代码生成器了!

于 2020-04-18T07:37:37.400 回答
0

伊万的回答对我有用,但每次我更改使用注释的文件时 - 构建过程都会输出:

[SEVERE] Terminating builds due to build script update
[INFO] Terminating. No further builds will be scheduled

然后将构建脚本本身从 重命名为build.dartbuild.dart.cached然后以代码 75 退出。

在深入研究build_runner代码后,我发现可以通过使用以下程序参数来缓解这种行为:

serve --skip-build-script-check

(即,而不是serve像伊万建议的那样)。

可能会有一些负面后果;在build_runner源代码中options.dart,我看到了这个:

// For testing only, skips the build script updates check.
bool skipBuildScriptCheck;
于 2021-07-17T11:11:58.543 回答