pb-hxj
v8.0.1
Published
Egret protobuf scaffold based on protobufjs 8.x
Readme
@your-npm-username/protobuf8
基于 Node.js 重写的 Protobuf 脚手架,目标是兼容 protobufjs 8.x,并修复 Windows 下 pbjs 命令冲突问题。
特性
- 使用 protobufjs 8.x + protobufjs-cli 2.x
add/init:初始化protobuf目录、复制运行时;在存在 egretProperties.json 时自动补充 Egret 配置generate:从.proto生成bundles/protobuf-bundles.js/.min.js/.d.ts- 生成产物兼容浏览器全局、Egret、Cocos 常见脚本环境
- 内置声明修复:自动清洗
['object'].<string, any>、Object.<string, *>、let xxx?:等异常类型片段
安装
npm install @your-npm-username/protobuf8使用
# 在项目根目录执行
npx pb-hxj init
npx pb-hxj generate也可以直接用 Node:
node src/cli.js init <项目目录>
node src/cli.js generate <项目目录>
## Cocos 使用说明
如果你是在 Cocos 项目下使用,必须保证加载顺序:
1. 先加载 protobuf/library/protobuf-library.js
2. 再加载 protobuf/bundles/protobuf-bundles.js
生成后的 bundles 会自动把 protobuf.roots.default 下的顶级 package 挂到全局,例如 package CommonProto 会暴露为全局 CommonProto。
如果你使用的是 Cocos Creator 的模块脚本体系,不要假设普通脚本会自动进入同一个模块作用域。优先把这两个文件作为普通插件脚本按顺序引入,或者在启动阶段显式先加载运行时,再加载 bundles。发布到 npm
npm login
npm run pack:check
npm publish当前版本已配置为作用域公开包发布,默认使用 beta tag。
发布前请先把包名中的 your-npm-username 替换成你自己的 npm 用户名。
默认目录结构
protobuf/
library/
protobuf-library.js
protobuf-library.min.js
protobuf-library.d.ts
protofile/
bundles/
pbconfig.jsonpbconfig.json
{
"options": {
"no-create": false,
"no-verify": false,
"no-convert": true,
"no-delimited": false
},
"sourceRoot": "protofile",
"outputFile": "bundles/protobuf-bundles.js"
}