Closed GDdark closed 4 years ago
我在2.2.2中复现了这个问题。 初步定位的bug原因是:在压缩和写入cocos2d-js-min.js这个文件时,将「$&&cc.warn」字符串替换为了「
&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)
还在进一步修复中。
进一步定位此bug:由于replace()
方法的第二个参数有一些特殊变量名,其中$&
表示「插入匹配的子串」,即第一个参数。
参考文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/replace#%E4%BD%BF%E7%94%A8%E5%AD%97%E7%AC%A6%E4%B8%B2%E4%BD%9C%E4%B8%BA%E5%8F%82%E6%95%B0
感谢张春洁同学的提示。
已修复。
修复方案是:replace方法第二个参数传入一个()=>string
函数而不是字符串。
参考提交:https://github.com/fkworld/cocos-to-playable-ad/commit/a823265ef8f74df63878bbb153b92300852d8232
使用了您的工具之后 能生成文件 但是报错了 我的Cocos Creator 版本是2.2.2 请问这是版本导致的问题吗