TypeError: PanelRouter is not a constructor。旧项目2.x升级3.5,有个异常

  • Creator 版本: 3.5

  • 目标平台:

  • 重现方式:发布桌面端,再点击运行。

  • 首个报错:

  • 之前哪个版本是正常的:2.x发布没问题、

  • 手机型号:

  • 手机浏览器:

  • 编辑器操作系统:

  • 重现概率:

57d1be7f1b3aeb01950bb161228bb03 hello.zip (2.9 MB)

在本地调试的时候,是没问题的,今天测试发布web包,才发现问题

代码循环引用了

我也怀疑过循环引用造成的,但是为啥本地开发调试就没问题呢。
包括2.x也发布过也没问题。

其实我觉得,应该浏览器和构建后的结果保持一致,浏览器不会循环引用的代码,发布后也不该出现循环引用才对,这样才能在写代码的时候就直接写出符合要求的代码

如楼上所说,开发可以,发布不行,那就是不对的。开发和发布后,起码功能要一致,不然等功能开发完后,要发布了。突然发现。这样写的不对。那是得有多蛋疼啊。

而且在低版本creator可以正常运行的代码,不应该因为creator升级了就因为嵌套循环无法运行

ES6 不是可以循环引用的吗,为啥会出问题

定位到是 rollup 的循环引用的执行顺序会有问题,会在 3.5.1 升级一下 rollup 版本修复下这个问题

1赞

真是绝了,我被这个circular dependency 困扰好几天了。有些代码上的循环引用随着项目的复杂度提升基本很难避免了。
关键是直接运行好好的,build出来运行失败,启动时就找不到父类而崩溃了

目前看来,等3.5.1就好了,不用处理

那么问题来,3.5.1什么时候发布呢?

这个月没几天了,应该是下个月吧

cc.vv可以解决一切循环引用烦恼

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。