Wie kann ich mithilfe des Stacks source_gen einen Codegenerator erstellen, der Code generiert, der (genauer gesagt json_serializable
) die Eingabe eines anderen Generators ist ?
Betrachten Sie zum Beispiel:
class Example extends Generator {
@override
String generate(LibraryReader library, BuildStep buildStep) {
return '''
@JsonSerializable(nullable: false)
class Person {
final String firstName;
final String lastName;
final DateTime dateOfBirth;
Person({this.firstName, this.lastName, this.dateOfBirth});
factory Person.fromJson(Map<String, dynamic> json) => _PersonFromJson(json);
Map<String, dynamic> toJson() => _PersonToJson(this);
}
''';
}
}
Dies ist ein Beispiel für einen Codegenerator, der Code ausgibt, an den dann gesendet werden muss json_serializable
Was kann ich tun, damit json_serializable
hier richtig generiert wird?
await Process.start('bash',arguments,runInShell: true);
aber es ist eine Art letzter Ausweg. Eigentlich habe ich vor einem Tag alle Logiken zur Codegenerierung über diesen Repo- Link ausprobiert . Ich denke, ich kann hilfreich sein.
flutter generate
/ funktionieren pub run build_runner build
. Andernfalls wäre die Verwendung sehr ungewöhnlich.