In my app, I use freezed with json_serializable. In the folder, where I put all my data models a lot of generated files, like model.g.dart
, model.freeezed.dart
. Is there any possibility to move all generated files like that to a separate folder in the project, like generated
?
Asked
Active
Viewed 3,556 times
19

Денис Тараненко
- 341
- 2
- 10
-
Did you find the way to do that? – Konstantin Volkov Sep 06 '22 at 18:22
2 Answers
6
Accordint to the build_runner documentation
flutter pub run build_runner build --output <dirname>
or
flutter pub run build_runner build --output models:<directory name>
to output only the models directory

Eugene Kuzmenko
- 1,216
- 10
- 12
-
Can't figure out how to use it. I have file lib/model.dart and I want file model.g.dart to be inside /lib/adapters/ directory, but `build --output adapters` creates packages in the root of my project with test, packages etc... – anber Jan 25 '23 at 11:48
-
-
Yes, I tried lib/adapters, /lib/adapters, ./lib/adapters but was not successful – anber Jan 27 '23 at 08:48
2
Here's working example from stackoveflow:
Basically create build.yaml file like this, it will generate files in generated
folder:
targets:
$default:
builders:
source_gen|combining_builder:
generate_for:
- lib/**.dart
options:
build_extensions:
'^lib/{{}}.dart': 'lib/generated/{{}}.g.dart'
freezed|freezed:
enabled: true
options:
build_extensions:
'^lib/{{}}.dart': 'lib/generated/{{}}.freezed.dart'
Don't forget to add generated
to part
.
import 'package:freezed_annotation/freezed_annotation.dart';
part 'generated/person.g.dart';
part 'generated/person.freezed.dart';
@freezed
class Person with _$Person {
const factory Person({
required String firstName,
required String lastName,
required int age,
}) = _Person;
factory Person.fromJson(Map<String, Object?> json)
=> _$PersonFromJson(json);
}

Iliya Gug
- 89
- 1
- 3