jsb_polyfill这个文件的来龙去脉?

我是Lua项目转过来搞Creator的, 一上手打包对jsb_polyfill这个东西表示疑问很多, 搜索了整个百度和谷歌, 好像也没有得到有价值的文章, 故来此一问.

只在热更新的章节有提到过:
原生项目中存在 src/jsb_polyfill.js 文件,这个文件是 JS 引擎编译出来的,包含了对 C++ 引擎的一些接口封装和 Entity Component 层的代码。在不同版本的引擎中,它的代码会产生比较大的差异,而 C++ 底层也会随之发生一些改变。这种情况下,如果游戏包内的 C++ 引擎版本和 src/jsb_polyfill.js 的引擎版本不一致,就可能导致严重的问题,甚至游戏完全无法运行。

以前Lua项目中 每个脚本文件如果不考虑加密的话, 代码都会存在src目录下, 现在到js中好像所有的脚本代码都被写进jsb_polyfill.js中了. 但是我上图中又有一个脚本文件没有写进去. 所以想问问,
1,什么情况下会把脚本代码写入jsb_polyfill.js中.
2,是否可以不把脚本写入jsb_polyfill.js中, 还是像以前Lua项目那样, 全部分散在src目录下, 以小文件的形式
3,是否有对jsb_polyfill详细介绍的教程或文档之类的.

本人creator新手, 中间提问的地方有不恰当的, 还请包含.

1赞
  1. 什么情况下会把脚本代码写入jsb_polyfill.js中.

项目中的代码会编译 project.dev.js 中, 从这篇文档 中可以得知没有放入project.dev.js 的文件应该是被 导入为插件了.

jsb_polyfill.js 是 cocos2d-x 提供的 js api 的封装, 目的应该是为了和 cocos2d-js api 保持一致.

2,是否可以不把脚本写入jsb_polyfill.js中, 还是像以前Lua项目那样, 全部分散在src目录下, 以小文件的形式

项目文件默认是打包的, 好像没有办法修改.

3,是否有对jsb_polyfill详细介绍的教程或文档之类的.

这方便的资料确实很少, 不过若只是做项目的话也没有必要研究的那么透彻.

同是 Lua 转过来的, 有机会多多交流.

1赞

jsb_polyfill 是 engine 这个 repo 中的 jsb/index.js 打包生成的。

1赞

意思是, 只有放入index.js中的脚本才会打包进jsb_polyfill。 这样说的话, 还是可以支持配置的。

嗯嗯。游戏本身是不会进去的。游戏会打包成 project.js

可以的, 加个联系方式.