2.4.0 web 平台,插件脚本的加载顺序不固定

如题,在2.4.0的插件脚本中,我有a.js和ab.js两个脚本,都设置为插件脚本,因为a.js需要使用到ab.js中的东西,所以需要固定的加载顺序才行,之前版本都能固定顺序加载。
文档中的描述是:插件脚本(有多个的话按项目中的路径字母顺序依次加载)
但在2.4.0的web测试的时候发现这个顺序不固定,偶尔会出现报错,原因是a.js先于ab.js加载了,导致a.js中使用ab.js的东西还没有被初始化。

@jare

抱歉,加载脚本时,有个参数处理错误,麻烦参考下面这个改动改下引擎中的 download-script.js 文件,看下能否解决你的问题。

3赞

我也遇到这个问题。感觉解答了。

按照你说的···我改了,也重新编译了JS引擎代码,bin文件夹下就生成了3个文件
然后web测试还是插件脚本加载的顺序是变化的···
然后我比较了模拟器文件夹下的cocos2d-jsb.js文件和bin文件夹下的cocos2d-jsb-for-preview.js文件都发生了变化。
但是模拟器就能正常顺序去加载插件脚本,但是web上就还是不行···


@EndEvil

抱歉,我又调整了一下,https://github.com/cocos-creator/engine/pull/6984
这样改试试

你的QQ是多少,我加你好友···

@EndEvil

QQ:784358078

这个解决了吗? 现在按照github修改,还是不行@Santy Wang

@EndEvil 怎么全是倒序加载的啊?

用这个pr试试呢,https://github.com/cocos-creator/engine/pull/6984

能不能在插件脚本上加个order, 加载的时候根据order排序加载?

1赞

我用 A项目作为bundle 导出了 index.js ,并且将一些方法暴露到了window , 然后放到 B项目 , B项目中使用到了 A项目中到类。 但编辑器会报错, 然后改了下文件夹到名称,编译就正常了。 我想问下,有没有方法可以明确到调整编译顺序。 如果放到了 B项目中 ,是否要勾选为插件。