0

在下面有一个相对简单的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选项,但我似乎找不到任何. 有人对此有解决方案吗?

4

2 回答 2

3

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

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

于 2020-07-06T20:15:57.193 回答
1

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

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
于 2020-07-13T02:39:18.610 回答