1

モデルの一部にjson_serializableを使用しているダーツ ソース ジェネレーターを作成しています。最初、ソース生成はしばらくの間正常に機能していましたが、実行するdart run build_runner build --delete-conflicting-outputsとエラーが発生します:

[情報] ビルド スクリプトの生成が完了しました。410 ミリ秒かかりました。
[情報] キャッシュされたアセット グラフの読み取りが完了しました。62 ミリ秒かかりました。
[情報] 最後のビルドが完了してからの更新を確認しています。492 ミリ秒かかりました。
[警告] ビルド スクリプトが更新されたため、アセット グラフを無効にしています。
[情報] 以前のビルドからの出力をクリーンアップしています。完了、
4 ミリ秒かかりました [情報] ビルド スクリプトの生成が完了しました、79 ミリ秒かかりました
[警告] アセット グラフがないため、コンパイル済みのビルド スクリプトが無効になりました。
[警告] lib/settings/config.dart:3:6: エラー: 'lib/settings/config.g.dart' の読み取り中にエラーが発生しました: そのようなファイルまたはディレクトリ
部分はありません 'config.g.dart';
^
lib/settings/config.dart:3:6: エラー: 「lib/settings/config.g.dart」は「part of」宣言がないため、一部として使用できません。
部分 'config.g.dart';
^
[情報] ビルド スクリプトのプリコンパイル... 完了、785 ミリ秒かかりました
[重大] ビルド スクリプト .dart_tool/build/entrypoint/build.dart のプリコンパイルに失敗しました。これは、誤って構成されたビルダー定義が原因である可能性があります。

私のパッケージの依存関係は次のとおりです。

dependencies:
  path: ^1.8.1
  yaml: ^3.1.0
  dotenv: ^3.0.0
  recase: ^4.0.0
  json_annotation: ^4.4.0
  code_builder: ^4.1.0

  dart_style: ^2.2.1

dev_dependencies:
  lints: ^1.0.0
  test: ^1.20.1
  build_runner: ^2.1.7
  json_serializable: ^6.1.3

build.yaml は次のようになります。

builders:
  map_gen:
    import: "package:map_gen/map_gen.dart"
    builder_factories: [ "build" ]
    build_extensions: { "$lib$": [ ".map.dart" ] }
    auto_apply: dependents
    build_to: source

なぜこれが起こっているのか、または独自のジェネレーターを提供するパッケージにソースジェネレーターを使用することに制限があるのか​​ を理解できませんでした。これを解決する方法はありますか?

編集

私はvscodeを使用していますが、ターミナルからビルドしようとしましたが、同じエラーが発生しました。同じエラーを実行した後でもflutter clean | dart pub get | dart run build_runner build --delete-conflicting-outputs持続します。

現在の回避策

現在、手動でファイルを作成し、ステートメントを手動で.g.dart追加しています。その後、実行すると、ソース生成が成功します。ただし、生成されたメソッドをコードにリンクした後に再度実行すると、ファイルが削除され、再び同じエラーが発生します。ソース生成が必要になるたびに、このプロセスを繰り返さなければなりません。part ofbuild_runnerbuild_runner.g.dart

4

0 に答える 0