[LayaAirIDE3]发布后的bundle.js,类的定义顺序错误

未发布前是可以正常运行的,发布后运行就报错(web和微信小程序都是)。
检查后发现,发布后的代码,有一个父类的申明放到了很后面的位置,子类在前,所以继承时父类为undefined。
手动调整位置后可以正常运行。
子类位置
1.png

父类位置
2.png

发布前bin下bundle.js顺序是正常的。
这个父类是一个通用的父类,很多文件都在引用。
别的基类也出现过类似情况。
 
代码本身引用关系等应该是没有问题的,因为预览可用。
推测是打包管线的部分编译优化插件有问题,比如Tree-shaking之类的,但是打包管线好像无法修改?
完整项目无法提供Demo,且简单环境无法复现。
 
layaide版本:3.1.6
 
已邀请:

正阳子

赞同来自:

laya这种类顺序问题是类相互循环引用导致,比如A,B相互继承,然后又相互引用,100%导致引擎出现这种问题,有可能引擎bug,laya不支持类相互循环引用,egret就可以,可惜egret短命

狂蜂浪蝶

赞同来自:

求个方案

正阳子

赞同来自:

上面不就是方案了吗,不要让类相互继承,然后又相互引用就解决了,比如
 
export default class A{
 
//public instance:B  这种就是相互继承,然后又相互引用,改为:
public instance:any
 
}
 
export default class B extends A{
 
}

要回复问题请先

商务合作
商务合作