如何在 intellij idea 中使用调试模式 运行 flutter 'packages pub run build_runner build'?
How run flutter 'packages pub run build_runner build' with debug mode in intellij idea?
我想在我的生成器代码上放置断点,但我不知道如何在调试模式下 运行 命令。
我使用 source_gen
和 build_runner
编写了生成器
class MyGenerator extends GeneratorForAnnotation<Todo> {
@override
FutureOr<String> generateForAnnotatedElement(
Element element, ConstantReader annotation, BuildStep buildStep) {
return "// Hey! Annotation found!";
}
}
运行命令flutter packages pub run build_runner build
*
复制build.dart
到项目的根文件夹
- 添加新的运行配置
- 运行调试,现在你可以调试你的代码生成器了!
* packages
是可选的,你可以 运行 flutter pub run build_runner build
Ivan 的回答对我有用,但每次我更改使用注释的文件时 - 生成过程输出:
[SEVERE] Terminating builds due to build script update
[INFO] Terminating. No further builds will be scheduled
然后将构建脚本本身从 build.dart
重命名为 build.dart.cached
,然后以代码 75 退出。
在深入研究 build_runner
代码后,我发现可以通过使用以下程序参数来缓解此行为:
serve --skip-build-script-check
(即不只是 Ivan 建议的 serve
)。
可能会有一些负面的后果;在 build_runner
源代码中,在 options.dart
中,我看到了这个:
// For testing only, skips the build script updates check.
bool skipBuildScriptCheck;
我想在我的生成器代码上放置断点,但我不知道如何在调试模式下 运行 命令。
我使用 source_gen
和 build_runner
class MyGenerator extends GeneratorForAnnotation<Todo> {
@override
FutureOr<String> generateForAnnotatedElement(
Element element, ConstantReader annotation, BuildStep buildStep) {
return "// Hey! Annotation found!";
}
}
运行命令
flutter packages pub run build_runner build
*复制
build.dart
到项目的根文件夹
- 添加新的运行配置
- 运行调试,现在你可以调试你的代码生成器了!
* packages
是可选的,你可以 运行 flutter pub run build_runner build
Ivan 的回答对我有用,但每次我更改使用注释的文件时 - 生成过程输出:
[SEVERE] Terminating builds due to build script update
[INFO] Terminating. No further builds will be scheduled
然后将构建脚本本身从 build.dart
重命名为 build.dart.cached
,然后以代码 75 退出。
在深入研究 build_runner
代码后,我发现可以通过使用以下程序参数来缓解此行为:
serve --skip-build-script-check
(即不只是 Ivan 建议的 serve
)。
可能会有一些负面的后果;在 build_runner
源代码中,在 options.dart
中,我看到了这个:
// For testing only, skips the build script updates check.
bool skipBuildScriptCheck;