cocos creator 使用 protobuf 的步骤与注意事项
- 移除可能曾安装过的protobuf
// 移除全局
npm remove -g protobufjs
npm remove -g protobufjs-cli
npm remove -g pbjs
// 移除项目中的
npm remove --save protobufjs
npm remove --save protobufjs-cli
npm remove --save pbjs
- 全局安装
npm i -g protobufjs //或者 cnpm i -g protobufjs
npm install -g protobufjs //或者 cnpm install -g protobufjs
npm i --g protobufjs-cli /或者 cnpm i --g protobufjs-cli//如果需要保存至项目,添加save将会自动写入到package.json中
npm i --save protobufjs protobufjs-cli
npm i --save protobufjs
npm i --save protobufjs-cli
- 创建一个简单的proto测试文件(这里取名player.proto)
syntax = "proto3";
message PlayerInfo {int32 userId = 1;string userName = 3;
}
- 生成js和.d.ts文件
pbjs: proto文件转换成js文件的命令
pbts: js文件转换成.d.ts文件的命令
-t static-module: 指定输出的模块类型为静态模块
-w commonjs: 指定生成的代码符合 CommonJS 模块规范,使其可以在 Node.js 等环境中使用。
-o {WritePath/WriteFile.js} {ReadPath/ReadFile.proto]: 将指定的proto文件进行转换并指定输出的文件名和路径。
pbjs -t static-module -w commonjs -o ./player.js ./player.proto
pbts -o ./player.d.ts ./player.js
也可以将所有proto文件合并生成到一个js和ts文件下
#将所有proto合并到一个整体的proto.js文件
pbjs -t static-module -w commonjs -o ./proto.js *.proto
pbts -o ./proto.d.ts ./proto.js
- 导入的时候可能出现模块找不到的问题
解决方案:输入自己的路径导入,使用类似命名空间的方式使用(示例:
PlayerInfo类型写法proto.PlayerInfo)
import {default as proto} from "./proto.js"
相关文章:
cocos creator 使用 protobuf 的步骤与注意事项
移除可能曾安装过的protobuf // 移除全局 npm remove -g protobufjs npm remove -g protobufjs-cli npm remove -g pbjs // 移除项目中的 npm remove --save protobufjs npm remove --save protobufjs-cli npm remove --save pbjs全局安装 npm i -g protobufjs //或者 cnpm …...
mac访达查找文件目录
mac访达查找文件目录 在Mac上使用访达(Finder)查找文件或目录的方法如下: 打开访达。 在访达窗口的侧边栏中,选择“ Go to Folder”(转到文件夹)选项,或者使用快捷键ShiftCommandG打开一个对…...
【数据结构】点分治 点分树
求树上长度小于等于k的路径 #include <iostream> #include <cstring> #include <algorithm>using namespace std;const int N 10010, M N * 2;int n, m; int h[N], e[M], w[M], ne[M], idx; //邻接表 bool st[N]; //记录每个点是否被删掉 int p[N]; //存储…...
K8s Calico替换为Cilium,以及安装Cilium过程(鲁莽版)
迁移CNI插件的3种办法: 1、创建一个新的集群,通过Gitops的方式迁移负载,然而,这可能涉及大量的准备工作和潜在的中断。 2、另一种方法是重新配置/etc/cni/net.d/指向Cilium。但是,现有的pod仍将由旧的…...
背景图鼠标放上去切换图片过渡效果
文章目录 css鼠标放上去之前效果鼠标放上去时效果 css <li class"message"></li>.message {width: 22px;height: 22px;background-image: url(/assets/message-01.png);background-size: cover;background-position: center;transition: background-ima…...
【Linux】当前进展
驱动层日志添加了下文件目录,函数,代码行的打印(这里要小心,驱动目录源代码打印日志里边添进程号可能有问题,因为在驱动初始化的时候,内核还没有创建进程,不过猜测可以先不打印进程相关信息&…...
阿里云云效多个ssh密钥对配置
实现功能 windows本地多个ssh密钥对,分别对应不同的阿里云账号的云效 实现办法 1.生成ssh密钥对 ssh-keygen -t rsa -f C:\xxx\id_rsa_customname(我这里C:\Users\admin\.ssh\id_rsa_customname) 2.配置.ssh目录的config文件 # ruiyi Host customnameHostName codeup.al…...
前后端跨域问题及其在ThinkPHP中的解决方案
在现代Web开发中,前后端分离的架构越来越普遍,但这也带来了跨域问题。跨域指的是在一个域下的网页试图请求另一个域的资源,浏览器出于安全考虑会限制这种行为。本文将探讨如何在ThinkPHP中解决跨域问题。 #### 1. 什么是跨域? 跨…...
基于CentOS7上安装MicroK8s(最小生产的 Kubernetes)
简介 MicroK8s是一个轻量级的Kubernetes发行版,其内存和存储要求远低于全尺寸Kubernetes集群。它可以在几分钟内通过一条命令快速创建功能齐全的Kubernetes集群,极大地简化了部署过程。 兼容性:MicroK8s与Kubernetes全面兼容,确保用户可以无缝迁移和扩展他们的应用程序。 …...
从《GTA5》的反外挂斗争看网络安全的重要性
摘要: 在网络游戏的世界里,外挂(作弊软件)一直是破坏游戏公平性和玩家体验的一大难题。作为一款深受全球玩家喜爱的游戏,《GTA5》(Grand Theft Auto V)在线模式也不例外地遭遇了外挂问题。本文将…...
python如何将字符转换为数字
python中的字符数字之间的转换函数 int(x [,base ]) 将x转换为一个整数 long(x [,base ]) 将x转换为一个长整数 float(x ) 将x转换到一个浮点数 complex(real [,imag ]) 创建一个复数 str(x ) 将对象 x 转换为字…...
TikTok流量不佳:是网络环境选择不当还是其他原因?
TikTok,作为全球短视频社交平台的佼佼者,每天都有海量的内容被上传和分享。然而,很多用户和内容创作者发现,他们的TikTok视频流量并不理想。这引发了一个问题:TikTok流量不佳,是因为网络环境选择不当&#…...
QT菜单栏设计(二级菜单栏)
目的:创建一级菜单栏,添加对应选项,并向一级菜单栏中添加二级菜单栏选项。 #include "mainwindow.h" #include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindo…...
网站建设中,常用的后台技术有哪些,他们分别擅长做什么网站平台
PHP、Python、JavaScript、Ruby、Java和.NET各自适用于不同类型的网站平台。以下是对这些编程语言适用场景的具体介绍: PHP Web开发:PHP是一种广泛使用的开源服务器端脚本语言,特别适合Web开发。全球有超过80%的网站使用PHP作为服务器端编程语…...
【线程】POSIX信号量---基于环形队列的生产消费者模型
信号量概念 这篇文章是以前写的,里面讲了 System V的信号量的概念,POSIX信号量和SystemV信号量作用相同,都是用于同步操作,达到无冲突的访问共享资源目的。 但POSIX可以用于线程间同步。 信号量的概念 POSIX信号量的接口 初始化…...
Excel 设置自动换行
背景 版本:office 专业版 11.0 表格内输入长信息,发现默认状态时未自动换行的,找了很久设置按钮,遂总结成经验帖。 操作 1)选中需设置的单元格/区域/行/列。 2)点击【开始】下【对齐方式】中的【自动换…...
UNI-SOP使用说明
UNI-SOP提供了两个集成客户端:SpringBoot2.x/JAVA1.8和SpringBoot3.x/JAVA17,满足不同项目的集成需求。 平台接入 使用UNI-SOP之前,业务平台需要进行接入,完成校验后才能正常使用,先引入客户端开发SKD包。 <depen…...
记录-java web 生成并下载zip文件
java生成zip文件,zip文件分两种:一种是包含文件夹、一种是不包含文件夹 生成zip文件的方式 ZipOutputStream zipOutputStream new ZipOutputStream(response.getOutputStream());// 文件夹名称String folder "download/";ZipEntry ze new Z…...
大数据集群部署文档
大数据集群部署文档 注意:需配合大数据集群启动&检查文档进行部署,以便可以检验每一个组件是否部署成功。 文章目录 大数据集群部署文档一、部署前准备1. 确保所有机器可以访问外网2. 配置root用户ssh连接3. 解决Vmware ESXi 6.5 Ubuntu虚拟机ssh连…...
HTML中的表单(超详细)
一、表单 1.语法 <!-- action:提交的地方 method:提交的方式(get会显示,post不会) --> <form action"#" method"get"><p>名字:<input name"name" ty…...
pngquant终极错误排查手册:10个常见问题与快速解决方案
pngquant终极错误排查手册:10个常见问题与快速解决方案 【免费下载链接】pngquant Lossy PNG compressor — pngquant command based on libimagequant library 项目地址: https://gitcode.com/gh_mirrors/pn/pngquant pngquant作为一款高效的PNG有损压缩工具…...
IIC驱动进阶:实现非连续寄存器批量配置的模块化设计
1. IIC总线驱动开发的痛点与挑战 第一次接触摄像头模块配置时,我被密密麻麻的寄存器列表吓到了。OV5640摄像头需要配置上百个寄存器,地址从0x3100到0x5FFF不等,每个寄存器都有特定功能。更麻烦的是,这些寄存器地址完全不连续&…...
小白友好:InstructPix2Pix极速推理,秒级响应你的修图指令
小白友好:InstructPix2Pix极速推理,秒级响应你的修图指令 你有没有过这样的经历?手机里存着一张照片,风景很美,但天空灰蒙蒙的;或者朋友聚会合影,大家都笑得很开心,就是背景有点乱。…...
check-dev-env - 开发环境依赖检测技能
check-dev-env - 开发环境依赖检测技能 技能概述 check-dev-env 是一个用于自动检查开发环境中常见依赖项是否已安装的 AI Agent 技能。该技能能够快速验证 Java、Maven、Node.js、NPM、Go、Python、Git 等主流开发工具的安装状态和版本号。 📋 元信息 项目说明技…...
告别繁琐安装!3分钟用PPTist打造专业级在线演示文稿
告别繁琐安装!3分钟用PPTist打造专业级在线演示文稿 【免费下载链接】PPTist 基于 Vue3.x TypeScript 的在线演示文稿(幻灯片)应用,还原了大部分 Office PowerPoint 常用功能,实现在线PPT的编辑、演示。支持导出PPT文…...
从一次存储故障复盘说起:深入理解FC SAN中WWN、WWPN、WWNN的区别与实战应用
从一次存储故障复盘说起:深入理解FC SAN中WWN、WWPN、WWNN的区别与实战应用 那天凌晨三点,我被一阵急促的电话铃声惊醒。客户的核心数据库集群突然失去存储连接,业务完全停滞。当我赶到现场时,运维团队已经尝试了重启服务器、更换…...
避坑指南:Java下载MinIO目录时,路径处理、空文件夹和权限的那些坑
Java与MinIO目录下载实战:从路径陷阱到权限优化的深度解析 1. 当MinIO目录下载遇上真实开发场景 在云存储时代,MinIO作为高性能的对象存储解决方案,已经成为Java开发者处理文件存储的热门选择。但当我们从简单的单文件操作转向复杂的目录下载…...
WindowsCleaner深度解析:如何用开源工具轻松解决C盘空间不足问题
WindowsCleaner深度解析:如何用开源工具轻松解决C盘空间不足问题 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你是否经常遇到C盘空间不足的困扰&am…...
Java面试-test
test...
ESP32-IDF开发实战:内置JTAG与OpenOCD高效调试指南
1. 为什么选择ESP32内置JTAG调试? 第一次接触ESP32开发时,你可能会有疑问:市面上这么多调试工具,为什么非要折腾内置JTAG?我刚开始用串口打印调试信息,后来发现这种方法在排查复杂逻辑时效率太低。直到尝试…...
