将 'library' 指令添加到使用 protoc 生成的 dart 代码

Add 'library' directive to dart code generated using protoc

有人能告诉我如何让 protoc 生成带有前导 library 指令的 dart 文件吗?

我正在使用 dart-protoc-plugin (v0.10.2) 从原型文件生成我的 dart、c++、c#、js 和 java 模型。我的印象是没有办法让 protoc 向生成的 dart 文件添加 'library' 指令,直到我注意到该指令出现在另一个项目中(参见 date.pb.dart)。

如果我使用相同的文件 (date.proto),我无法获取 protoc 来生成包含 'library' 指令的 dart 文件。

简而言之:我要取一个.proto文件,内容如下

syntax = "proto3";

package another.proj.nspace;

message MyObj {
  ...
}

并生成一个带有前导 'library' 指令的 .dart 文件,类似于以下代码段

///
//  Generated code. Do not modify.
///
// ignore_for_file: non_constant_identifier_names,library_prefixes
library another.proj.nspace;
...

注意:我不关心指令的实际值,因为我可以重组代码以获得所需的结果。我只需要一种协议来 add library 指令...

我用来生成 dart 文件的基本命令是

protoc --proto_path=./ --dart_out="./" ./another/proj/nspace/date.proto

不幸的是,dart-protoc-plugin 的 README 不是很有用,我不得不通过源代码找出可用的选项;目前似乎唯一特定于 dart 的选项与 grpc 有关。

我尝试了其他语言的选项(例如 'library' 和 'basepath')但没有成功。

如果可能的话,它会大大简化我的工作流程,但我开始觉得 date.pb.dart 中的库指令是在代码生成后添加的...

经过一番询问,似乎 library 指令在某个阶段(see pull request)从 protoc 插件中删除,因此不再存在支持。