构建WEB版游戏时,COCOS自带代码里有ES6代码 如何杜绝

我要制作只包含 ES5代码的游戏,在网页上运行, 但是COCOS自动加入了很多自带的ES6代码,如何构建不含有ES6代码的程序

像 let { RESOURCES, INTERNAL, MAIN, START_SCENE } = cc.AssetManager.BuiltinBundleName; 这种构建出来就自带的ES6代码 是不能有的, 我的目标平台就不支持 ES6

tsconfig.json
编译时会把代码转换成ES5

我按照你说的方法 将tsconfig.json 内容修改成:
{
“compilerOptions”: {
“module”: “commonjs”,
“lib”: [ “es2015”, “es2017”, “dom” ],
“target”: “es5”,
“experimentalDecorators”: true,
“skipLibCheck”: true,
“outDir”: “temp/vscode-dist”
},
“exclude”: [
“node_modules”,
“library”,
“local”,
“temp”,
“build”,
“settings”
]
}

重启编辑器之后,构建web-mobile项目 ,导出成功后,其main.d75b5.js文件中,还是含有ES6代码: let { RESOURCES, INTERNAL, MAIN, START_SCENE } = cc.AssetManager.BuiltinBundleName;

你可以在build-templates下面添加相应平台的es5版本main.js

可以试试用webpack再打一次包,webpack自带的babel可以转换es5
当然,这个比较麻烦

我看了官方文档,上面没有给出ES5版本的main.js文件链接,这个ES5版本的main.js文件,去哪里找,方便给出一个大致寻找方向吗? 十分感谢!

main.js是不会被转换的吧,那自己手动改一下代码
let { RESOURCES, INTERNAL, MAIN, START_SCENE } = cc.AssetManager.BuiltinBundleName
let RESOURCES = cc.AssetManager.BuiltinBundleName[0];
let INTERNAL = cc.AssetManager.BuiltinBundleName[1];

自己的代码应该 是转的了

解构赋值的地方改一下,let改成var就可以了

果然如此,我核对了一下构建完的代码,确实我编写的JS代码 都被自动转换成ES5了,但是main.js和其他系统自带的JS文件 还是ES6,我找个在线转换网站,一个文件一个文件的转换,之后就可以正常运行了 。

我还有个缩放的问题 很棘手,问题网址:COCOS构建出的webmobi,在安卓设备上总是被自动放大 可以帮我看看吗