torikatsu923.dev

サイト内検索

    【Flutter】freezed・json_serializableのファイル生成先を変更するためのbuild.yaml

    freezed・jsonserializableは、手動で作成するのが面倒なコードをサクッと生成できるため非常に便利です。

    こんにちは、とりかつ(@torikatsu923)です。 今回の記事ではfreezed・json_serializableのファイル生成先を変更する方法を紹介します。

    課題感

    freezed・json_serializableは、手動で作成するのが面倒なコードをサクッと生成できるため非常に便利です。しかし、生成対象のクラスが増えるにつれて生成ファイルの数がとても多くなります。

    APIとの通信まわりのオブジェクトを格納するディレクトリがこのようになってしまった経験がある方は少なくないと思います。

    生成ファイルだらけになってしまったディレクトリ

    このままだと見通しが悪いため、生成ファイルは一箇所でまとめて管理したいですよね。

    ファイル生成先を変更するためのbuild.yaml

    以下のようにbuild.yamlで生成先を指定することで、ファイルの生成先を変更することができます。

    build.yaml

    targets:
      $default:
        builders:
          source_gen|combining_builder:
            options:
              build_extensions:
                '^lib/{{}}.dart': 'lib/generated/{{}}.g.dart'
          freezed:
            options:
              build_extensions:
                '^lib/{{}}.dart': 'lib/generated/{{}}.freezed.dart'

    ここでfreezedとjson_serializable別で生成先を指定する必要がある点に注意です。

    また、source_genをpubspec.yamlのdev_dependenciesに追加する必要がある点についても注意が必要です。

    pubspec.yaml

    dev_dependencies:
      # ...
      source_gen: ^1.2.1

    これで自動生成ファイルを一箇所にまとめることができました。

    ファイルの生成先を変更できた

    参考

    -––