Как запустить flutter 'packages pub run build_runner build' в режиме отладки в 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!";
  }
}

2 ответа

Решение

1) запустить команду flutter packages pub run build_runner build

2) copy build.dart в корневую папку проекта

3) 4) добавить новую конфигурацию запуска 5) запустить отладку, теперь вы можете отлаживать свой генератор кода!

Ответ Ивана сработал для меня, но каждый раз, когда я менял файл, в котором использовалась аннотация, процесс сборки выводил:

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

а затем переименовал сам скрипт сборки из build.dartк build.dart.cached, а затем выйдите с кодом 75.

Покопавшись в коде, я обнаружил, что это поведение можно смягчить, используя следующие аргументы программы:

      serve --skip-build-script-check

(т.е. вместо просто serveкак предложил Иван).

Возможны некоторые негативные последствия; в build_runnerисходный код, в options.dart, Я видел это:

      // For testing only, skips the build script updates check.
bool skipBuildScriptCheck;
Другие вопросы по тегам