可以可以,值得借鉴。 
作者,高质高量。刚在看你框架,现在就在分享新的好东西了

(^U^)ノ~YO
建议:抽离逻辑
比如Cocos的构建、小游戏的打包、OSS的上传、飞书的通知
这样,就可以
支持不同的引擎、不同的平台、不同的对象存储、不同的办公软件
嗯 感谢建议
也这样想过,为了方便就一把梭出来了。。。
其实模块是抽离的,今天还有点时间,我再改改组装逻辑
主体逻辑有了,其实无所谓,让使用的人想怎么玩就怎么玩,也OK的。
是这个道理,开源的,大家可以随意改
1赞
重新组装了打包的流程
目前可以更方便的修改
// AutoBuild.js中 分别注册了不同平台的打包流程
constructor() {
this._platformFlowBindFuncs = {
['android']: this.buildAndroidFlow,
// ['ios']: this.buildIosFlow,
['harmonyos-next']: this.buildHarmonyNextFlow,
['wechatgame']: this.buildWechatFlow,
['bytedance-mini-game']: this.buildBytedanceFlow,
['alipay-mini-game']: this.buildAlipayFlow,
// ['huawei-quick-game']: this.buildHuaweiQuickFlow,
}
}
想要修改对应平台的打包流程,只需要找到对应的函数
把不需要的调用删掉就差不多了
/** 构建android渠道 */
async buildAndroidFlow(channel) {
let build = new BuildAndroid(channel, this._version, this._buildCode, this._debug);
// 修改版本号
build.modifyGameVersion();
// 构建apk
await build.buildApk();
// 拷贝apk到指定目录 publish 目录
await build.copyApkToPublish();
// 给apk签名
await build.signApk();
// 上传apk到cdn
await build.ossUpload();
// 发送飞书通知
if (this._notificationFeishu) {
await build.notificationFeishu();
}
// 打印安卓打包完成信息
console.log(colors("green", "安卓打包完成, apk文件路径:" + path.join(DataHelper.instance.project, 'publish', build.getApkName())));
}
/** 鸿蒙Next打包流程 */
async buildHarmonyNextFlow() {
let build = new BuildHarmony(this._version, this._buildCode, this._debug);
// 修改鸿蒙项目版本号
build.modifyGameVersion();
// 构建鸿蒙app
await build.buildApp();
// 上传鸿蒙app和hap到cdn
await build.ossUpload();
// 发送飞书通知
if (this._notificationFeishu) {
await build.notificationFeishu();
}
// 打印鸿蒙打包完成信息
console.log(colors("green", "鸿蒙打包完成, hap文件路径:" + path.join(DataHelper.instance.project, 'publish', build.getHapName())));
if (!this._debug) {
console.log(colors("green", "鸿蒙打包完成, app文件路径:" + path.join(DataHelper.instance.project, 'publish', build.getAppName())));
}
}
/** 支付宝小游戏打包流程 */
async buildAlipayFlow() {
let build = new BuildAlipay(this._version, this._message, this._debug);
// 上传支付宝远程资源到cdn
await build.uploadRes();
// 上传支付宝小游戏到开发者后台 并且保存体验二维码到qrcode目录
await build.uploadProject();
// 发送飞书通知
if (this._notificationFeishu) {
let imagePath = path.join(DataHelper.instance.path, "qrcode", "ali_qrcode.png");
await new NotificationFeishu().miniGameSend("alipay", this._version, imagePath, this._debug);
}
}
/** 抖音小游戏打包流程 */
async buildBytedanceFlow() {
let build = new BuildBytedance(this._version, this._message, this._robot, this._debug);
// 上传抖音远程资源到cdn
await build.uploadRes();
// 上传抖音小游戏到开发者后台 并且保存体验二维码到qrcode目录
await build.uploadProject();
// 发送飞书通知
if (this._notificationFeishu) {
let imagePath = path.join(DataHelper.instance.path, "qrcode", "bytedance_qrcode.png");
await new NotificationFeishu().miniGameSend("bytedance", this._version, imagePath, this._debug);
}
}
/** 微信小游戏打包流程 */
async buildWechatFlow() {
let build = new BuildWechat(this._version, this._message, this._robot, this._debug);
// 上传微信远程资源到cdn
await build.uploadRes();
// 上传项目到微信后台
await build.uploadProject();
// 发送飞书通知 因为微信不支持自动修改体验版本 这里是提前把二维码放到目录下了
if (this._notificationFeishu) {
let imagePath = path.join(DataHelper.instance.path, "qrcode", "wechat_qrcode.jpg");
await new NotificationFeishu().miniGameSend("wechatgame", this._version, imagePath, this._debug);
}
}
修改打包流程可以找到对应的平台,比如android
把飞书通知的代码注释掉
/** 构建android渠道 */
async buildAndroidFlow(channel) {
let build = new BuildAndroid(channel, this._version, this._buildCode, this._debug);
// 修改版本号
build.modifyGameVersion();
// 构建apk
await build.buildApk();
// 拷贝apk到指定目录 publish 目录
await build.copyApkToPublish();
// 给apk签名
await build.signApk();
// 上传apk到cdn
await build.ossUpload();
// 发送飞书通知
// if (this._notificationFeishu) {
// await build.notificationFeishu();
// }
// 打印安卓打包完成信息
console.log(colors("green", "安卓打包完成, apk文件路径:" + path.join(DataHelper.instance.project, 'publish', build.getApkName())));
}
OV实现了吗?感谢分享,看一下
ov是什么?
oppo vivo的小游戏
那个我们游戏没上,就没搞,我这个是我们项目自用的,抽出来的
二维码过期了
一会更一下
二维码已更新


