提供一个解决方案:将 cocos creator 构建出来的 web-mobile 项目打包为 playable-ad 项目,即单 html 文件。

You have to create the folder dist in the root folder.

1赞

使用工具成功打出了html文件,但是无法正常打开,报错如下:


请问是什么原因?

似乎有点牛逼啊

我也遇到同样的问题 我的cocos 版本 是2.2.2

最近有其他项目在做,缺少时间和精力。

我在2.2.2中复现了这个问题。
初步定位的bug原因是:在压缩和写入cocos2d-js-min.js这个文件时,将 $&&cc.warn 字符串替换为了 </body>&cc.warn ,导致了html文件格式的异常。
初步检测,与js压缩库uglify无关,与正则替换有关。
异常代码如下:

let base = "<body></body>"
let js = "var $=1;if(true){$&&console.log(1)}"
let result = base.replace(/<\/body>/,`${js}</body>`)
console.log(result)

还在进一步修复中。

如果有修复的方案,可以在此说明。

附加Issue地址:https://github.com/fkworld/cocos-to-playable-ad/issues/1

1赞

已解决,解决方案是使用一个函数替代replace的第二个参数,具体请参考相应的 issue:
https://github.com/fkworld/cocos-to-playable-ad/issues/1

另外对main.js的注释部分有额外的说明,已经在第1楼中修改。

貌似第一楼不可以修改了,所以我把对main.js中的注释部分说明单独写出来。

需要修改 src/web-mobile/main.js,注释掉 154 到 163 行,目的是不在代码中载入 project.js,而是在流程中载入。
特别说明:考虑不同版本下打出来的 main.js 代码位置可能会有差异,未必在相应的行,所以我把需要注释掉的代码补充进来。

// jsList
var jsList = settings.jsList;

// var bundledScript = settings.debug ? 'src/project.dev.js' : 'src/project.js';
// if (jsList) {
//     jsList = jsList.map(function (x) {
//         return 'src/' + x;
//     });
//     jsList.push(bundledScript);
// }
// else {
//     jsList = [bundledScript];
// }

厉害啊 mark

膜拜大佬,解决了大问题,我要打钱!大佬有收款渠道吗?

mark

插个眼~到时候会用到

打包完有这个报错,请教下是哪里没配置好么,感谢

最近工作比较忙,没有时间修复。

  1. 检查一下cocos版本是否正确。
  2. 检查一下是否将main.js中的部分代码注释。参考第28楼。

如果都检查完毕,还出现错误的话,可以根据我给出的核心算法自己修改一部分。

等工作不忙的时候我会对项目整理一下,争取支持到最新的cocos版本。

1赞

插个眼 也行后面会用到 感谢分享

已解决,是构建后的html缺少了部分,补上就行了。

有视频资源的话,怎么打包呢,mp4格式的,求教?

V1.1.0 3D版本的要如何使用了?? 大佬关注。。。。

MARK一下

同求cocos creator 3d 的 bin资源。

一直出现ts-node不成功是怎么回事