用protoc生成gPRC中proto文件的JavaScript调用代码

我去,折腾了一个小时,终于折腾出来咋用protoc生成gPRC服务接口的JavaScript调用代码了,记录一下,希望能帮到大家。

千万注意!如果想为nodejs生成对应的桩代码,本文不适用!
千万注意!如果想为nodejs生成对应的桩代码,本文不适用!
千万注意!如果想为nodejs生成对应的桩代码,本文不适用!

文章目录

关联问题

本文章主要介绍如何用protoc生成gPRC服务接口的JavaScript调用代码。

本文章可以解决如下问题,前提是你想生成nodejs/javascript用的grpc调用代码:

  1. ‘protoc-gen-grpc-web’ 不是内部或外部命令,也不是可运行的程序
    或批处理文件。&&‘protoc-gen-js’ 不是内部或外部命令,也不是可运行的程序
  2. –js_out: protoc-gen-js: Plugin failed with status code 1.
  3. –js_out: [文件名].proto: options: mode is required
  4. –proto_path passed empty directory name. (Use “.” for current directory.)ext:.,–proto_path=.

即便没有遇到上面的问题,按着本文一步步来也是能生成的,顺便恭喜屏幕前的您可以少走点弯路。

解决过程

以下工作以Windows系统为例

  1. 下载3.20.1版本的protoc,地址:https://github.com/protocolbuffers/protobuf/releases/tag/v3.20.1。我们主要用到其中的protoc.exe。正常情况下,下载来是一个压缩包,protoc.exe在压缩包的bin目录下。

关于为啥非得用3.20.1版本的,可以点这里查看
我看不太明白,反正是让用3.20.1版本。

  1. 下载protoc-gen-grpc-web,地址:https://github.com/grpc/grpc-web/releases/。下载下来就是一个exe文件,默认文件名是带着版本号的。这里我们需要对其改名,改成protoc-gen-grpc-web.exe

  2. (以windows系统为例)将protoc.exe和改名后的protoc-gen-grpc-web.exe放置到proto文件所在的文件夹。(当然如果你愿意整环境变量啥的,都可以。只不过这样可能来的更方便一些叭)此时文件夹里大概是下面这个样子:
    在这里插入图片描述

  3. 接着在proto文件所在的文件夹下执行命令(一定要确保protoc.exeprotoc-gen-grpc-web.exe都按照上面的步骤,放在了proto文件所在的文件夹下):

.\protoc.exe --proto_path=. [你的proto文件名].proto --js_out=import_style=commonjs:. --grpc-web_out=import_style=commonjs,mode=grpcwebtext:.

我在这里踩了很大的坑!因为原本系统变量中配置的protoc版本是3.21的,如果开头不用.\protoc.exe而用protoc的话,使用的还是3.21的版本而不是3.20.1的版本。

  1. 看一下文件夹里头,应该已经生成出来心心念念的两个js文件了!
    在这里插入图片描述

如果有用,欢迎点个赞让我知道这篇文章可以帮助到大家~
顺便也让我高兴一下,谢谢!^_^

猜你喜欢

转载自blog.csdn.net/weixin_52027058/article/details/126691452