💬

Dartのコード生成速度を爆速化する

2025/01/26に公開

はじめに

久々にFlutter開発をしていて、筋肉の記憶で

dart run build_runner build -d

を実行したところ、なんと2分もかかってしまいました。


「え?こんなに時間がかかったっけ?」と思いつつ、コード生成の速度を改善できないかと調べてみました。
そして今回は、Dartのコード生成速度を爆速にするための小技を共有したいと思います。

小技

結論から言うと、build.yamlに設定を追加してスコープを限定することです。

さっそくコードで説明しましょう。

targets:
  $default:
    builders:
      freezed:
        options:
          # 生成されたコードのフォーマットをなしにすることで、ビルドが若干速くなります
          format: false
        generate_for:
          include:
            - lib/models/**.entity.dart
            - lib/models/**.dto.dart
      riverpod_generator:
        generate_for:
          include:
            - lib/providers/**.provider.dart

このように、includeexcludeなどの設定を追加することで、生成対象のファイルを指定することができます。
これにより、コード生成の時間が大幅に短縮されます。

僕の場合は、1分45秒から1分未満に短縮されました。
驚くべきことに、40%以上の効率アップを実現しました!

さらに、.entityのようにファイル名にミドル修飾子を付けることで、パスを具体的に指定する必要がなくなり、ファイルの役割も明確になります。めっちゃ便利です!

最後に

いかがでしょうか?
もし私と同じような悩みを抱えている方がいれば、ぜひこの方法を試してみてください!

GitHubで編集を提案

Discussion