You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在IntelliJ IDEA中以调试模式运行Flutter build_runner命令并调试生成器代码?

调试Build Runner生成器的方法

我来帮你搞定调试生成器的问题!其实要给MyGenerator这类基于source_gen的生成器设置断点、调试运行非常简单,下面分步骤给你讲清楚:

1. 先在生成器代码里设置断点

先在你想要暂停调试的代码行上打个断点,比如你这段代码里的return语句处:

class MyGenerator extends GeneratorForAnnotation<Todo> { 
  @override 
  FutureOr<String> generateForAnnotatedElement(
    Element element, 
    ConstantReader annotation, 
    BuildStep buildStep
  ) { 
    // 在这里打个断点(IDE里点击行号左侧即可)
    return "// Hey! Annotation found!"; 
  } 
}

2. 选择合适的调试方式

方式一:用命令行启动调试模式

如果你习惯用命令行操作,可以通过Dart的调试观测器启动build_runner:

# 新版Dart(推荐)
dart run --observe build_runner build

# 旧版Dart(仍用pub命令的情况)
pub run --observe build_runner build

执行命令后会输出一个调试URL(比如http://127.0.0.1:8181/),你可以用IDE连接这个URL进行后续调试。

方式二:IDE直接配置调试(更便捷)

VS Code

  1. 打开项目的.vscode/launch.json文件(没有的话就新建一个)
  2. 添加以下调试配置:
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug Build Runner",
      "type": "dart",
      "request": "launch",
      "command": "build_runner",
      "args": ["build"],
      "cwd": "${workspaceFolder}"
    }
  ]
}
  1. 保存后,在左侧「运行和调试」面板选中这个配置,点击启动按钮即可。当build_runner执行到你设置的断点时,会自动暂停。

IntelliJ/Android Studio

  1. 点击顶部菜单栏的「Run」→「Edit Configurations」
  2. 点击左上角的+,选择「Dart Command Line App」
  3. 在「Name」栏填个标识名(比如Debug Build Runner)
  4. 在「Command」下拉框选择build_runner,「Program arguments」填入build,「Working directory」选择项目根目录
  5. 点击「Apply」保存配置,然后点击调试按钮启动,断点触发时就会自动暂停。

小提示

  • 调试前建议先清理build_runner的缓存,避免旧生成文件干扰调试:
dart run build_runner clean
  • 确保你的生成器已经在build.yaml或者注册文件里正确配置,不然build_runner找不到它,断点自然不会触发。

内容的提问来源于stack exchange,提问作者Ivan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:54:21