Open4

dart run build_runner buildって何してる?

muranakarmuranakar

何をしている?

Dartのコード生成ツールを実行するもの

なにのために

コードの自動生成
ボイラープレートコードの削減
型安全なコードの生成

muranakarmuranakar

主な利用例

JSONシリアライゼーション用のコード生成 (json_serializable)
データベースモデルの生成 (floor)
イミュータブルオブジェクトの生成 (freezed)
依存性注入のコード生成 (injectable)

muranakarmuranakar

class User with _$User {
  factory User({
    required String name,
    required int age,
  }) = _User;
}

上記のコードが存在したときに、build_runner を実行すると、このクラスに関連する全てのボイラープレートコード(コピーメソッド、等値比較、JSONシリアライゼーションなど)を作成してくれる。便利。

muranakarmuranakar
part 'login_response.freezed.dart';

のように、作成したボイラープレートコードをpartで紐づけてあげる必要がある。