NodeJS:协议生成的文件不生成服务定义
NodeJS: protoc generated files not generating service definition
下面有一个相对简单的 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
服务和我的 SayHello
rpc 函数。环顾了其他一些 post 和 Google 的参考资料 (https://developers.google.com/protocol-buffers/docs/reference/overview),似乎我需要包含一个 --plugin
选项,但我似乎找不到任何。有人对此有解决方案吗?
Node gRPC 的 protoc
插件分布在 grpc-tools
npm package 中。该软件包提供了一个工具 grpc_tools_node_protoc
,它是自动包含插件的 protoc
版本。
如该包的 README 中所述,当您 运行 该工具时,您还需要使用 --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
下面有一个相对简单的 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
服务和我的 SayHello
rpc 函数。环顾了其他一些 post 和 Google 的参考资料 (https://developers.google.com/protocol-buffers/docs/reference/overview),似乎我需要包含一个 --plugin
选项,但我似乎找不到任何。有人对此有解决方案吗?
Node gRPC 的 protoc
插件分布在 grpc-tools
npm package 中。该软件包提供了一个工具 grpc_tools_node_protoc
,它是自动包含插件的 protoc
版本。
如该包的 README 中所述,当您 运行 该工具时,您还需要使用 --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