1

问题陈述:

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

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

问题:

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

类似的问题:

如何在 intellij idea 中使用调试模式运行颤振“packages pub run build_runner build”?

4

1 回答 1

4

自从我发现如何在 intellij idea 中使用调试模式运行 flutter 'packages pub run build_runner build'?我想知道这在 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但这只是执行,而不是调试脚本。launch.json为了方便调试,需要调整VS Code 。

创建一个launch.json

launch.json文件在 VS Code 中配置启动配置。要创建一个launch.json选择右侧的调试符号并创建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_app. meal_app位于名为 的子文件夹中example。这就是为什么cwd在配置中设置属性的原因。如果您的应用程序不在子文件夹中,则可以省略此选项。

args:设置为“构建”。这类似于命令flutter pub run build_runner buildwhere buildis 的参数build_runner

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

name:这是配置的名称。

不要忘记切换到正确的配置

于 2021-10-14T07:54:36.520 回答