使用protoc 生成ts的pb文件

在使用直接生成pb.js后,调用的过程中IDE的代码提示比较差,很多需要翻文档才能查到,所以我们寻找支持ts或者能够生成 .d.ts 文件的工具,如下是makefile

官方文档:https://github.com/improbable-eng/ts-protoc-gen

Makefile

prod:grpc_tools_node_protoc --plugin=protoc-gen-ts=./node_modules/.bin/grpc_tools_node_protoc_plugin --js_out=import_style=commonjs,binary:./src/protos/ --grpc_out=grpc_js:./src/protos/  -I ./protos ./protos/*.protoprotoc  --plugin="protoc-gen-ts=./node_modules/.bin/protoc-gen-ts" --js_out="import_style=commonjs,binary:./src/protos" --ts_out="service=grpc-node,mode=grpc-js:./src/protos"  -I ./protos ./protos/*.protoprotoc  --plugin="protoc-gen-ts=${PWD}/node_modules/.bin/protoc-gen-ts.cmd" --js_out="import_style=commonjs,binary:./src/protos" --ts_out="service=grpc-node,mode=grpc-js:./src/protos"  -I ./protos ./protos/*.protogrpc_tools_node_protoc --plugin=protoc-gen-ts=./node_modules/.bin/protoc-gen-tsc --ts_out=../src/types -I ./protos ./protos/*.proto

比较重要的就是下面命令,生成后查看效果

# gen pb .d.ts file
protoc --plugin="protoc-gen-ts=${PWD}/node_modules/.bin/protoc-gen-ts.cmd" --js_out="import_style=commonjs,binary:./src/protos" --ts_out="service=grpc-node,mode=grpc-js:./src/protos"  -I ./protos ./protos/*.proto
## gen pb js file
protoc-gen-grpc --js_out="import_style=commonjs,binary:./src/protos" --grpc_out="grpc_js:./src/protos" -I ./protos ./protos/*.proto


接下来js的调用会直接有ide提示识别

遇到问题

在windows下,plugin必须使用 .cmd结尾的路径,并且需要完整路径powershell支持${PWD}来获取路径,不然会提示 win32 application 或者路径错误问题

Nodejs gRPC client 使用typescript相关推荐

  1. grpc client No connection could be made because the target machine actively refused it

    grpc client No connection could be made because the target machine actively refused it 禁用防火墙 查看yaml中 ...

  2. gRPC client端请求响应速度慢问题

    文章目录 1.问题描述 2.问题分析与解决 3.DNS知识点补充 3.1 什么是dns? 3.2 主机名与域名是不是同一个概念? 3.3 Linux端如何配置域名解析? 3.4 127.0.1.1与1 ...

  3. react和nodejs_如何使用React,TypeScript,NodeJS和MongoDB构建Todo应用

    react和nodejs In this tutorial, we will be using TypeScript on both sides (server and client) to buil ...

  4. 带入gRPC:gRPC Streaming, Client and Server

    带入gRPC:gRPC Streaming, Client and Server 原文地址:带入gRPC:gRPC Streaming, Client and Server 项目地址:go-grpc- ...

  5. TiDB与gRPC的那点事

    通过对 gRPC 的诞生背景与设计原则的介绍,作者分享了 TiDB 选择 gRPC 的原因,并介绍了在这个过程中为了适应 TiDB 而对 gRPC 做出的调整与完善.最后,关于性能方面,介绍了调优的思 ...

  6. Python Module — grpcio gRPC 远程调用示例程序

    目录 文章目录 目录 Python gRPC demo 1.使用 Protocol Buffers 来定义 gRPC API 2.实现 Recommendations 微服务 安装依赖 基于 .pro ...

  7. netcore中使用grpc

    简介 grpc是由google公司开发的一个高性能.开源和通用的RPC框架,采用HTTP/2通信. 1.gRPC的传输使用http/2支持双向流. 2.支持多语言,例如java.go.php.net. ...

  8. 从源码透析gRPC调用原理

    导语 gRPC是什么,不用多说了. gRPC如何用,也不用多说了 . 但是,gRPC是如何work的,清楚的理解其调用逻辑,对于我们更好.更深入的使用gRPC很有必要.因此我们必须深度解析下gRPC的 ...

  9. 你不知道的gRPC反向代理

    一个gRPC Proxy的实现方案 导语 可用性.可靠性和扩展性是衡量后台服务的基本标准,HTTP反向代理,是任何一个提供大型Web服务后台所必备的,用以提高服务的这些基础参数,且通过支持到负载均衡而 ...

  10. GRPC golang版源码分析之客户端(二)

    Table of Contents 1. 前言 2. 负载均衡 3. 相关链接 1 前言 前面一篇文章分析了一个grpc call的大致调用流程,顺着源码走了一遍,但是grpc中有一些特性并没有进行分 ...

最新文章

  1. 强类型DataSet中的DBNull的处理
  2. 使用命令行建立Zend Framework项目
  3. 【特征选择】基础知识
  4. 前端工程师应该达到什么水平,找工作薪资才比较高?
  5. 一个大胖鲸-Docker(2):简单的几个docker命令
  6. 连线Face++前方团队:COCO夺冠背后的细节,不是拼硬件这么简单
  7. 信息论与贝叶斯(二)
  8. [转载] pandas入门:Series、DataFrame、Index基本操作都有了!
  9. [转载]VS2005 不能创建 win32 smart device project
  10. java dump可视化在线内存分析工具
  11. 爬虫学习——爬虫之新浪新闻
  12. 外贸找客户软件:G-EXTRACTOR V.20
  13. [NOI2021] 密码箱——连分数、动态DP
  14. 如何看电脑支持最大多少内存条?仅需一个命令
  15. proxy代理的配置
  16. 华为H3C配置单臂路由、静态默认浮动路由的配置方法
  17. AIX中常用的SMIT 的使用
  18. Unity Shader - PBR 渲染 SP 导出的素材
  19. 判断点与圆的关系 点类与圆类 C++
  20. 北斗授时服务器(时钟系统)是如何完成时间同步的

热门文章

  1. 如何使用浏览器的F12调试页面?
  2. Linux x86_64内核中断初始化
  3. base command
  4. solr5.5.3+tomcat8部署
  5. 10.企业安全建设指南(金融行业安全架构与技术实践) --- 安全预算、总结与汇报
  6. 49. 精简 JavaScript(10)
  7. 42. 添加 Expires 头(3)
  8. 5. laravel 路由(2)
  9. 【专家访谈】测试专家 - 陈林钧,访谈问题收集中
  10. APT攻防整理-攻击方法/工具