使用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/*.proto
protoc --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/*.proto
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
grpc_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
![在这里插入图片描述](https://img-blog.csdnimg.cn/095f49d20714420abaf24af188871b74.png) 接下来js的调用会直接有ide提示识别 ![在这里插入图片描述](https://img-blog.csdnimg.cn/f85678cd72c345aa891fc90801767729.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIyNjU2NDcz,size_16,color_FFFFFF,t_70)
遇到问题
在windows下,plugin必须使用 .cmd 结尾的路径,并且需要完整路径powershell支持${PWD} 来获取路径,不然会提示 win32 application 或者路径错误问题
|