【muzzik插件】:proto-generate(简单实用的基于pbjs/pbts自动生成 js / d.ts 的插件)

###效果


##简单实用的基于pbjs/pbts自动生成 js / d.ts 的插件

###支持

  • 文件创建监听
  • 文件删除监听
  • 文件改变监听
  • 文件移动监听
  • 内容替换(生成后自动替换 js 内的 指定文件内容 为 我们配置的 替换内容
    例如: protobufjs/minimal 替换为 protobufjs/dist/protobuf.min

另外这里说一下:
cocos 打包会自动导入js脚本内的模块,就算是放在assets外面,所以我不知道为什么网上以及论坛里大部分的 cocos 使用protobuf 教程都是叫我们去把protobufjs文件手动拖入项目中再去修改js中的导入。这样并没有任何卵用,要知其然更要知其所以然。不能只知道怎么用就完了。这是我打包测试几次得出的结果。另外在 声明文件(d.ts)中导入外部模块打包并不会自动导入 ,所以大家一般都不用去手动替换js内的require内容。

###protobuf版本区别

  • require(“protobufjs/dist/protobuf.min”) // 支持动/静态使用
  • require(“protobufjs/dist/minimal/protobuf.min”); // 仅静态

另外还有个light版本,测试发现静态可用,动态加载内部逻辑会出错,所以如果是只用静态方式使用proto的,我建议使用require(“protobufjs/dist/minimal/protobuf.min”) 这个文件,只有20kb左右,不会占用更多的字节

目前已上传插件商店,搜索muzzik即可获取


可自行下载使用,本插件依赖protobufjs模块,如果没有请使用npm install protobufjs安装模块

5赞

mark.
支持。

后续需要更多功能可以留言,看情况更新

之后视情况发布自己写的网络模块,搭配这个插件使用无缝衔接,当然还有后续的游戏框架,待更

1赞

期待,和网络模块一起使用,实际项目中都是多proto,静态js,感觉文件很大。代码自动提示也不是很好。尤其和网络搭配使用。

嗯,可以增加生成文件瘦身,后面有时间了加上

赞一个!!!!!!!!!!

忽然发现上传的首次版本有个bug,不知道是不是审核的小伙伴帮我改了,哈哈:joy:,尴尬,github上已更新

:sweat:插件审核这边只能反馈意见不能做修改,之前有问题的话可能测试的时候没发现吧

有空 Store 这边也更新下版本,描述里也带上这个帖子的地址吧。

嗯,商店里面的版本没有问题,可能是我后面改的时候出现的吧,已经修复了

大佬,请教一下,看网上说的 微信小游戏 不能动态加载proto,所以我用proto 通过nodejs转成了一个js文件,但是转出来的js太大了,有啥指点吗?

可以去掉不用的api接口,可以节省一部分空间,论坛里面有个收费的插件,另外js文件可以压缩,网上一搜就有了,我后面再把这两个功能加上去吧,现在在忙别的

这个功能都比较简单,如果急用可以先去试试js压缩,如果压缩后还觉得太大就只能去掉不用的接口了,你可以在我插件里面改改,都是字符串操作,比较简单的 ,不会改的话就去买那个论坛里面的收费插件吧

是的 我现在只是保留了 主要的功能 类型注解那些我都去掉了,不过我现在文件大小还是有点大

如果压缩之后并且去掉了不用的api接口还觉得有点大那就没办法了,必须保留基础的接口,不然都没法使用

仔细看才发现,你这功能是生成自己项目代码提示文件:joy:
功能是不错,就是标题和描述看不懂做什么的

标题和功能都一样阿,pbjs是protobuf模块的生成静态脚本的脚本文件,pbts是生成d.ts声明文件的脚本,只不过之前需要手动执行命令,我只不过是改为了自动监听而已

使用前请确保在项目根目录node_modules\protobufjs 目录下成功执行 npm install

造福万千人类 :heart_eyes:

https://github.com/cocos-creator/example-3d/tree/v3.0/protobuf/assets/scripts
大佬们,请教下我用creator3.1.1按照这个例子将proto转d.ts可以使用(编辑器会提示protobuf is not defined,但浏览器运行没报错),现在想用long处理int64数据,在代码使用没报红,运行提示load http…/thirdy/protobuf failed,protobuf.js和long.js都导入为插件,protobuf依赖long。请问下是什么原因呢,帮忙给个思路。