参考文章链接 https://blog.csdn.net/jmszl1991/article/details/124817947
在vue3中使用protobuf可以参考上文,我在此做记录的同时,稍做补充
使用lookup
import protobuf from 'protobufjs'
// 找到要翻译的包和字段
const pb = protobuf.lookup('PBserver.hello');
参考文章中在页面中引入protobuf之后,直接使用了lookup
,我在实际开发中,会报lookup undefind
。不清楚是我的问题还是怎么样
在控制台中打印protobuf
发现并没有lookup
方法
我在项目中的使用
import protobuf from 'protobufjs'
import behaviorBody from '@/proto/proto.js'
import iconvlite from 'iconv-lite'
var behaviorRoot = protobuf.Root.fromJSON(behaviorBody);
var message = behaviorRoot.lookupType('BehaviorBody');
let dataN = {
data: [{
time: Date.now(), // 调用时间戳
event: 'BURYINGID[event]', // id
}]
}
var payload = message.create(dataN);
var buffer = message.encode(payload).finish();
buff报错
引入protobufjs就会报错,具体不知道什么原因产生的。
Module "buffer" has been externalized for browser compatibility. Cannot access "buffer.Buffer" in client code.
最后一顿google
解决链接:https://stackoverflow.com/questions/73353392/cannot-access-buffer-buffer-in-client-code-svelte-with-userbase
按照链接中配置了vite.config.js
文件就可以了
不太懂为什么会出现这样的报错,和为什么可以这样解决
export default defineConfig({
resolve: {
alias: {
util: 'util/',
},
},
})
以上补充不知道会不会遇到,如果有用就点个赞吧~