NodeJS:protoc 生成的文件不生成服务定义



下面有一个相对简单的helloworld.proto文件

syntax = "proto3";
package helloworld;
service Greeter { rpc SayHello(HelloRequest) returns (HelloResponse); }
message HelloRequest { string name = 1; }
message HelloResponse { string message = 1; }

当我运行protoc --js_out=import_style=commonjs,binary:. .helloworld.proto时,它会生成一个helloworld_pb.js文件,但它不包括我的Greeter服务或我的SayHellorpc 函数。查看了其他一些帖子以及Google的参考(https://developers.google.com/protocol-buffers/docs/reference/overview(,似乎我需要包含一个--plugin选项,但我似乎找不到任何选项。有人对此有解决方案吗?

Node gRPC 的protoc插件分布在grpc-toolsnpm 包中。该包提供了一个工具grpc_tools_node_protoc,该工具是自动包含插件的protoc版本。

如该包的自述文件中所述,当您运行该工具时,您还需要使用--grpc_out参数来控制插件。该问题标记为grpc-js,因此您可能希望使用该参数的grpc_js选项来生成与grpc-js交互的代码。

对于那些一直在寻找同时生成打字稿的示例的人,请参见下文

grpc_tools_node_protoc.cmd --js_out=import_style=commonjs,binary:.output --grpc_out=generate_package_definition:.output *.proto
grpc_tools_node_protoc.cmd  --plugin=protoc-gen-ts.cmd=./node_modules/.bin/protoc-gen-ts --ts_out=.typescript -I .output *.proto

相关内容

  • 没有找到相关文章

最新更新