protobuf.js是一個純JavaScript實現,支持Node.js和瀏覽器的TypeScript,它容易使用速度快速,可以直接反射.proto文件,不需要生成任何文件。
protobuf.js是基於ByteBuffer.js的Protocol Buffers純JavaScript實現,主要功能是解析.proto文件,構建Message類,編碼解碼。
一、安裝
首先下載 node.js(包含npm)
1.初始化package.json文件
npm init
在項目根目錄使用npm init命令,一路回車,將在當前目錄創建package.json文件用於nodejs三方模塊的管理。
2. protobufjs模塊
查看候選版本
$ npm view protobufjs versions
1⃣️安裝protobufjs到項目
npm install protobufjs --save
2⃣️安裝protobufjs到全局
npm install -g protobufjs
主要是方便使用protobufjs提供的pbjs命令行工具。pbjs可以將proto原文件轉換成json、js等,以提供不同的加載proto的方式。
全局就方便任意地方調用,本地方便代碼require。
protobuf.js 依賴 long.js、bytebuffer.js(也可通過npm安裝)
二、插件方式導入
找到js文件node_modules/bytebuffer/dist/bytebuffer.js,導入工程並設置爲插件,protobuf 會被導入成全局變量。
三、轉換
1.使用 pbjs 將所有 proto 文件轉換爲 js
pbjs -t static-module -w commonjs -o proto.js *.proto
採用插件方式,protobuf會被自動導入,require方式已經無效,需要修改生成的proto.js文件.
//var $protobuf = require("protobufjs/minimal");
var $protobuf = protobuf;
2.使用 pbjs 將 js 文件轉換爲 dts 文件
pbts -o proto.d.ts proto.js
參考:https://www.jianshu.com/p/da48fb06b29f