protobufjs使用教程,支持proto文件打包成typescript或javascript脚本

官方链接:https://docs.cocos.com/creator/manual/zh/scripting/modules/example.html

第一步,安装nodejs。(自行安装)

安装教程可参考 https://www.runoob.com/nodejs/nodejs-install-setup.html

第二步,创建cocos新项目,在新项目根目录(assets同级目录)下打开命令行。

通过 npm 安装 protobufjs 并将它写入项目目录下的 package.json 的依赖项。

在项目目录命令行中执行以下命令:

npm install --save protobufjs

通过 npm 安装 protobufjs--cli 并将它写入项目目录下的 package.json 的依赖项。

npm install --save protobufjs-cli

第三步,在项目目录下新建 Proto 目录并定义几个 proto 文件。

// pkg1.protopackage pkg1;
syntax = "proto2";
message Bar {required int32 bar = 1;
}// pkg2.protopackage pkg2;
syntax = "proto2";
message Baz {required int32 baz = 1;
}// unpkg.proto 不属于任何的包syntax = "proto2";
message Foo {required int32 foo = 1;
}

第四部,增加默认导出。

在项目目录下创建一个 Tools/wrap-pbts-result.js 文件,脚本代码如下:

const fs = require('fs');const ps = require('path');const file = ps.join(__dirname, '..', 'Protojs', 'proto.d.ts');const original = fs.readFileSync(file, { encoding: 'utf8' });fs.writeFileSync(file, `namespace proto {${original}}export default proto;`);

第五部,在 package.json 中定义。

"scripts": {"build-proto:pbjs": "pbjs --dependency protobufjs/minimal.js --target static-module --wrap commonjs --out ./Protojs/proto.js ./Proto/*.proto","build-proto:pbts": "pbts --main --out ./Protojs/proto.d.ts ./Protojs/*.js && node ./Tools/wrap-pbts-result.js"}

第六部,在项目目录打开命令行,安装pbjs和pbts。

npm install -g pbjs
npm install -g pbts

第七部,运行package.json中的两个脚本。

"build-proto:pbjs": "pbjs --dependency protobufjs/minimal.js --target static-module --wrap commonjs --out ./Protojs/proto.js ./Proto/*.proto"
"build-proto:pbts": "pbts --main --out ./Protojs/proto.d.ts ./Protojs/*.js && node ./Tools/wrap-pbts-result.js"

即可在Protojs文件夹中生成需要的文件。

将文件导入工程中,即可在工程中引用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/726926.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AD导入FreeCAD生成的step文件后颜色丢失?

最近在绘制一个模组,本身是想在网上找是否有类似的3D模型,但是似乎没有,此时我就自己用FreeCAD画了一个,但是在导入到AD中就出现了问题 使用freecad画出的模型样式: 导入到AD中去后的样式: freecad中导出时…

passwd: Authentication token manipulation error

passwd: Authentication token manipulation error 身份验证令牌操作错误。 可能原因: 1、密码文件无修改权限(有i权限) lsattr /etc/{passwd,shadow} 取消方法 chattr -i /etc/passwd chattr -i /etc/passwd 2、/文件系统无空间或者无inod…

GOWIN软件使用

1、管脚复用 根据自己需求把复用管脚勾选上,管脚当普通管脚使用 JTAG设置成普通管脚,下载程序时候JTAGEN管脚需要上拉高电平(可以在下载器线上上拉个电阻,下载后把下载线拔走,否则JTAG管脚无法使用,管脚充…

Linux - 反弹Shell

概念 Shell 估计大家都不陌生,简单来说,就是实现用户命令的接口,通过这个接口我们就能实现对计算机的控制,比如我们常见的 ssh 就是执行的 Shell 命令实现对远程对服务器的控制。 那反弹 Shell ( Reverse Shell&…

前端将html导出pdf文件解决分页问题

这是借鉴了qq_251025116大佬的解决方案并优化升级完成的,原文链接 1.安装依赖 npm install jspdf html2canvas2.使用方法 import htmlToPdffrom ./index.jsconst suc () > {message.success(success);};//记得在需要打印的div上面添加 idlet dom document.que…

2024内衣洗衣机测评推荐:希亦、小吉、鲸立综合对比哪个牌子好?

对于那些追求品质生活、分类洗涤的用户而言,小型洗衣机可以满足我们对不同类型衣物分开洗涤的需求,例如将内衣、袜子等小件衣物与外套等分开洗涤,以保持衣物的清洁和卫生。并且如果您家中有宝宝,或者您对个人卫生和健康有较高要求…

Spring面向切片编程AOP概念及相关术语(一)

个人名片: 🐼作者简介:一名大三在校生,喜欢AI编程🎋 🐻‍❄️个人主页🥇:落798. 🐼个人WeChat:hmmwx53 🕊️系列专栏:🖼️…

分享几种简约大方的ListView外观设计(qml)

一、前言 最近才学到这里,感觉基础的 ListView 很丑,就现学现用弄个几个自认为还行的设计给大家献丑了。如果你觉得还不错,代码就在下面拿去直接用,顺便给我点个赞哈 ~ 感谢感谢 ~ 二、正文 设计1 第一种就是正常的左侧边栏&am…

redis知识点

一、关系型数据库和非关系型数据库 关系型数据库(RDBMS):指采用了关系模型来组织数据的数据库,,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。 ①特…

无纸化电子sop系统帮助企业降低成本,提高目视化管理

无纸化电子SOP系统是一种基于数字化技术的生产管理系统,旨在优化员工的生产规范,提高产品质量。随着制造业的发展和数字化转型,越来越多的企业开始采用无纸化电子SOP系统来替代传统的纸质操作规程,以提升生产效率、降低成本、确保…

MySQL 学习笔记(基础篇 Day2)

「写在前面」 本文为黑马程序员 MySQL 教程的学习笔记。本着自己学习、分享他人的态度,分享学习笔记,希望能对大家有所帮助。推荐先按顺序阅读往期内容: 1. MySQL 学习笔记(基础篇 Day1) 目录 3 函数 3.1 字符串函数 3…

【人工智能课程】计算机科学博士作业三

【人工智能课程】计算机科学博士作业三 来源:李宏毅2022课程第10课的作业 1 图片攻击概念 图片攻击是指故意对数字图像进行修改,以使机器学习模型产生错误的输出或者产生预期之外的结果。这种攻击是通过将微小的、通常对人类难以察觉的扰动应用于输入…

KBPC5010-ASEMI逆变器整流桥KBPC5010

编辑:ll KBPC5010-ASEMI逆变器整流桥KBPC5010 型号:KBPC5010 品牌:ASEMI 封装:KBPC-4 最大重复峰值反向电压:1000V 最大正向平均整流电流(Vdss):50A 功率(Pd):大功率 芯片个数&#xff…

大数据最佳实践

本文主要收录一些大数据不错的实践文章 1、数禾云上数据湖最佳实践 https://blog.51cto.com/u_15089766/2601706 该文章介绍了数禾云的数据胡实践,包含presto以及数据湖等组件的一些部署架构,文章听不错的,里面提到了为了避免presto与yarn计…

【EI会议征稿通知】第六届能源系统与电气电力国际学术会议(ICESEP 2024)

第六届能源系统与电气电力国际学术会议(ICESEP 2024) 2024 6th International Conference on Energy Systems and Electrical Power 随着ICESEP (2019-2023)前5届的成功举办,我们很荣幸地宣布,由华中科技大学主办的第六届能源系统与电气电力…

【npm】node包管理工具npm的介绍和基础使用

简言 npm 是 Node.js 的 包管理器(Package Manager),它是专门用于管理 Node.js 项目中第三方库的工具。 本文介绍下npm和其使用方法。 npm介绍 npm 是世界上最大的软件注册中心。各大洲的开源开发者都使用 npm 共享和借用软件包&#xff…

一个数据库表格缺少自动增加的字段导致添加一条数据失败

一个数据库表格缺少自动增加的字段导致添加一条数据失败。最近要整理出一个cms网站源程序,因此新建了一个目录,将需要的文件复制到该目录。复制好以后,试用的时候发现添加留言失败。经过数小时的查找原因,最后找到原因&#xff0c…

互联网智慧工地源码,“互联网+建筑大数据”SaaS微服务架构,支持PC端、手机端、数据大屏端

智慧工地源码,支持多端展示(PC端、手机端、平板端)SaaS微服务架构,项目监管端,工地管理端源码 智能时代的风暴已经融入了我们生活的每个方面,智能手机、iPad等移动终端智能设备已经成为我们生活的必需品。智…

能耗数据采集网关在实际生产中的应用及其带来的能效提升-天拓四方

能耗数据采集网关是一种集成多种传感器和数据通信技术的智能化设备,它能够实现对生产现场各类能耗数据的实时采集、存储和传输。通过网关设备,企业可以构建一个全面、高效的能源管理系统,对生产过程中的能源消耗进行实时监控和精准控制&#…

flex布局(后端工程师快上手写前端)

本文更加适合后端同学需要上手写前端本人实习前后端都干,只能说工作越来越难找了 不知道大家前端掌握的怎么样,我是来重新复习了 css前置知识(熟悉可以不看): 1.如果父标签不设置宽高,那么父标签的宽高会…