如何在 VS Code 中调试颤振 build_runner 构建?

Posted

技术标签:

【中文标题】如何在 VS Code 中调试颤振 build_runner 构建?【英文标题】:How to debug flutter build_runner build in VS Code? 【发布时间】:2021-12-02 14:41:38 【问题描述】:

问题陈述:

我正在使用 build_runner 包构建代码生成器。

我运行flutter pub run build_runner build 来执行我的代码生成器。

问题:

如何使用断点调试flutter pub run build_runner build

类似问题:

How run flutter 'packages pub run build_runner build' with debug mode in intellij idea?

【问题讨论】:

【参考方案1】:

自从我找到How run flutter 'packages pub run build_runner build' with debug mode in intellij idea? 后,我想知道这在 VS Code 中是如何工作的。此外,我不喜欢复制构建文件的解决方案。这就是我的工作方式。

生成脚本:

首先要做的是执行flutter pub run build_runner build,以便生成.dart_tool 文件夹中的文件。我的应用名为meal_app

代码生成器脚本位于.dart_tool/build/entrypoint/build.dart

运行脚本:

脚本可以使用dart .dart_tool/build/entrypoint/build.dart build 运行,但这只是执行,而不是调试脚本。为了方便调试,需要调整VS Codelaunch.json

创建一个launch.json

launch.json 文件在 VS Code 中配置启动配置。要创建launch.json,请选择右侧的调试符号并创建launch.json 文件。

为 build_runner 创建启动配置


    "version": "0.2.0",
    "configurations": [
        
            // Config 1
        ,
        
            // Config 2
        ,
        
            "name": "Debug Widgetbook Generator",
            "cwd": "example/meal_app",
            "request": "launch",
            "program": ".dart_tool/build/entrypoint/build.dart",
            "type": "dart",
            "args": ["build"]
                
    ]

cwd: [可能不需要] build_runner 为其生成文件的应用程序称为meal_appmeal_app 位于名为 example 的子文件夹中。这就是为什么在配置中设置了cwd 属性。如果您的应用不在子文件夹中,则可以省略此选项。

args: 设置为“构建”。这类似于命令flutter pub run build_runner build 其中buildbuild_runner 的参数。

program:由于代码生成器文件位于上述结构中,所以配置需要知道执行哪个文件。

name:这是配置的名称。

别忘了切换到正确的配置

【讨论】:

我的要求略有不同。我的调试器进入.dart_tool/build/entrypoint/build.dart 文件,我的断点在那里工作。但是,如何在我编写的实际代码生成器中获得断点? 没有。我还没想出如何让它工作..如果你弄明白了,请告诉我!

以上是关于如何在 VS Code 中调试颤振 build_runner 构建?的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 10 上使用 VS Code 在 iphone 上调试颤振

在 VS Code 中调试 Flutter Web 应用,无需创建 Microsoft Edge 新实例

在 VS Code 中找不到模拟器。怎么修

可以使用颤振在 VS Code 和 Android Studio 中启动但无法连接到模拟器

如何在 VS Code 中调试 dotnet 测试?

如何在 VS Code 中调试夜班测试