protobufjs如何把proto转成js,把js转成ts

4 篇文章 0 订阅

项目场景:

小场景:

在项目中要使用websockt实现一个聊天功能,其中要用protobufjs去做序列化


问题描述

问题描述中...:
在使用protobufjs自带的pbjs和pbts的时候一直会提示错误找不到对应的文件路径,但是文件路径又是没问题的
配置文件代码如下

"proto": "pbjs -t static-module --es6 -w es6 -o src/common/proto/message.js  src/common/proto/message.proto",
"pbts": "pbts -o src/common/proto/message.ts src/common/proto/message.js"

原因分析:

努力分析中…:

分析是不是路径真的配置错了,或者是语法标准配置错了,结果试了一圈都不对,最后看了一下安装是的protobufjs是最新的版本的问题


解决方案:

正在解决中:

最后看了下,换成了"protobufjs": “^6.11.3”,然后再去执行对应的指令,就没问题了,记录一下

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用protobuf将proto文件转换为js文件的过程可以通过以下步骤完成: 1. 首先,确保已经安装了npm和protobuf的相关库文件。可以使用以下命令进行安装: ``` npm install -g require npm install -g browserify npm install google-protobuf ``` 2. 下载proto.exe工具,并将其加入系统的环境变量中,或者将其放置在system32目录下。可以从以下链接中下载proto.exe工具: ``` https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protoc-3.6.1-win32.zip ``` 3. 创建一个.proto文件,并在文件的第一行添加语法声明,例如: ``` syntax = "proto3"; package zhimpackage; message ZH_IMMessage { string field = 1; } ``` 4. 在命令行中运行以下命令,将.proto文件编译成js文件: ``` protoc.exe --js_out=import_style=commonjs,binary:. ZH_IM.proto ``` 5. 使用browserify工具将生成的js文件打包成一个文件。可以使用以下命令: ``` browserify ZH_IM.js > IMBody.js ``` 6. 现在,你可以将生成的IMBody.js文件用于前端页面了。在HTML文件中,引入IMBody.js文件: ```html <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>竹</title> <script src="IMBody.js"></script> </head> <body> </body> <script> var message = new proto.zhimpackage.ZH_IMMessage(); message.setField("一个人"); var bytes = message.serializeBinary(); console.log(bytes); var data = proto.zhimpackage.ZH_IMMessage.deserializeBinary(bytes); console.log(data); console.log(data.getField()); </script> </html> ``` 因此,以上步骤可以将protobuf的proto文件转换为js文件,并在前端页面中使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Protobuf之proto js生成](https://blog.csdn.net/u010138825/article/details/85245995)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [javascriptprotobuf.jsproto文件转换为JSON描述符,重复丢失](https://blog.csdn.net/weixin_29790897/article/details/115905577)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值