使用source_gen堆栈创建代码生成器,如何使生成器生成将作为另一个生成器(更具体地讲json_serializable
)输入的代码?
例如,考虑:
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);
}
''';
}
}
这是代码生成器的示例,该代码生成器输出代码,然后将其发送到 json_serializable
我该怎么做才能json_serializable
在这里正确生成?
await Process.start('bash',arguments,runInShell: true);
但这是最后一种方法。实际上,我一天前刚刚在此repo 链接上尝试了所有代码生成逻辑,所以..我认为我可以提供帮助。
flutter generate
/开头pub run build_runner build
。否则使用将非常不寻常。