Packages like Freezed compensate for missing Dart language features such as sealed unions and offer many useful features.
Many Flutter packages rely on build_runner, a build system for Dart code generation.
Unfortunately, build_runner takes long time to run because by default it analyzes all the Dart source files in your project.
There are two ways to mitigate this:
- move all files that depend on codegen to a separate package
- add a
build.yamlfile that specifies a subset of files to be processed:
targets: $default: builders: freezed:freezed: generate_for: include: - lib/models/**.dart
Setting this up correctly can save you a lot of time in the long run. 👍
You can use a suffix such as
*.codegen.dart for all files that need to be processed by
build_runner and update the
build.yaml like this:
targets: $default: builders: freezed:freezed: generate_for: include: - lib/**.codegen.dart
This way you can place the files anywhere you want in your project.
This tip was inspired by this thread on Twitter.
Build and grow in-app purchases. Glassfy’s Flutter SDK solves all the complexities and edge cases of in-app purchases and subscriptions so you don't have to. Test and build for free today by clicking here.