component 中引用全局变量导致missingScript

  • Creator 版本: 3.0

  • 目标平台:

  • 重现方式:

  • 首个报错:

  • 之前哪个版本是正常的:

  • 手机型号:

  • 手机浏览器:

  • 编辑器操作系统:

  • 重现概率:

贴个工程代码看看

{228ABD60-4096-4390-9781-09CB4E3729D7} {C6D5998C-3DB6-4DC6-B845-34B8F4904B92}

如图 引入一个第三方库 直接导致missScript 2.x很多运行时依赖到3.x都变成编译时依赖了

{DBD82441-E255-420D-8167-77457C26CD3F}

难道是我使用方式不对?运行时 脚本确实被加载了 Load In Editor 也已经勾选

应该是有报错吧?你把错误贴出来看看,另外你要不要试着用npm的方式用protobuf啊 有教程 示例:通过 npm 使用 protobuf.js · Cocos Creator

2021-02-22 14:24:52-error: Failed to load module file:///D:/work/xiuxian3D/xiuxian3D-001/assets/Script/lib/protobuf/protobuf: Error: Error when fetching file D:\work\xiuxian3D\xiuxian3D-001\assets\Script\lib\protobuf\protobuf: Error: ENOENT: no such file or directory, open ‘D:\work\xiuxian3D\xiuxian3D-001\assets\Script\lib\protobuf\protobuf’.

为了避免中间生成太多proto接口文件使用的方法,运行时解析。
主要问题时导入第三方d.ts的时候,ts不报错,引擎会missScript
再一次看了文档 貌似暗示这种写法
window[‘dcodeIO’].ProtoBuf.loadProto((res).text);
通过这个方法确实不missScript了 但是这种写法明显是为了规避而规避 不知道编辑器编译时规避全局变量的设计意图是什么

可以贴下项目不

assets.zip (60.7 KB)

你的 protobuf.d.ts 和 protobuf.js 表达的不对,你看上面发的教程,我建议你以 npm 的方式使用 protobuf

问题是 我这个东西用了很久了 从cocosjs 到egret,laya到creator1.x creator2.x 一个纯粹干净的js解析库 为什么到3.0就不对了呢?向你们的2.x组请教一下,提高一下兼容性?既然是面向未来的,你也应该站在巨人肩膀上吧