请教OpenTGX框架问题

请问框架里的tgx.ts是在哪里加载的,找了半天也没找到,我看执行顺序是项目启动前就已经加载了

就是挂了个全局变量啊

我意思是这脚本在哪注入的

又不是继承组件的 不需要挂到场景里 类似于js插件脚本

怎么设置才能让这个脚本运行在项目启动之前呢

你是遇到啥加载顺序的问题了吗 提示tgx is undefined还没加载?

我在学习这个框架,只是不知道tgx.ts为什么能在项目启动之前加载,我在项目中没有找到对它的导入,所以才发了这个贴子

哦没有导入是因为把tgx这个命名空间挂到了全局变量 类似于你随便新建个脚本声明个对象 let obj 然后挂到window上 window[“obj”]=obj 这样在别的脚本就可以使用obj了(还需要添加全局声明)

我尝试把tgx.ts里面的代码全部注释掉,然后只写了一行打印,这个打印还是会执行

大哥你是写组件脚本写中毒了 多写点自定义类就好了

你没懂我意思,我当然知道自己写个类挂全局,别的脚本可以引用,我意思是我们写个模块,会有index.ts把模块的接口导出,这个index.ts就相当于tgx.ts,我们一般会在项目启动的时候导入一下index.ts,但是我没在项目中看到哪里有导入过tgx.ts,而且tgx.ts也不是插件,所以我才问怎么设置才能达到这种效果

哦哦 全局声明 或者.d.ts声明文件

这个tgx.ts是运行在插件代码之后,项目代码之前,我是说这是怎么做到的

问题是我没有找到相关的代码,所以才问咯

声明框架命名空间 namespace tgx {}
挂载到全局变量 (globalThis as any)[‘tgx’] = tgx;
全局声明 declare global {
namespace globalThis {
namespace tgx {

这些代码都是tgx.ts里面的,这个脚本为什么会被执行跟这些代码无关,我把里面代码全删掉只写条打印这个脚本也会执行

一个文件不就是一个模块吗 在这个模块里写一条打印语句 编译成js跑在浏览器上执行这个打印语句有什么问题吗 还是我没get到你的问题

我意思是没看到哪里有导入这个模块

(globalThis as any)[‘tgx’] = tgx;
但是把命名空间挂到全局变量上了 全局变量全局变量全局

你把逻辑搞错了,你这段代码是写在gtx.ts脚本里的,顺序肯定是先执行这个脚本才会把tgx挂在全局上,而不是因为里面有这段代码才执行的gtx.ts,我的问题是为什么会执行tgx.ts这个脚本,哪里执行的