Angular 在表7中声明一个全局网站变量

Angular 在表7中声明一个全局网站变量,angular,typescript,three.js,Angular,Typescript,Three.js,我在包含3JS GLTFLoader时遇到问题。 出现以下错误: 在我的组件中,我导入前三个,然后导入GLTFLoader脚本 import * as THREE from 'three'; window['THREE'] = THREE; import 'three/examples/js/loaders/GLTFLoader'; 如第2行所示,我尝试为GLTFLoader脚本设置一个全局三变量,但当我在网站控制台中键入THREE时,它是未定义的。您应该在GLFTLoader中导入THRE

我在包含3JS GLTFLoader时遇到问题。 出现以下错误:

在我的组件中,我导入前三个,然后导入GLTFLoader脚本

import * as THREE from 'three';
window['THREE'] = THREE;
import 'three/examples/js/loaders/GLTFLoader';

如第2行所示,我尝试为GLTFLoader脚本设置一个全局三变量,但当我在网站控制台中键入
THREE
时,它是未定义的。

您应该在
GLFTLoader
中导入
THREE

import*从“三”添加为三
到文件的顶部
three/examples/js/loaders/GLTFLoader.ts

编辑:很抱歉,我不明白您想做什么。 我想你的问题是装载顺序的问题。从您的屏幕截图上看,您似乎正在使用webpack。它将在运行代码之前加载所有导入。因此,导入
GLFTLoader
时,
窗口['THREE']=THREE
尚未运行

查看编译后的文件(或Chrome中的源代码),您应该可以看到实际运行的代码


为了解决您的问题,将
three/examples/js/loaders/GLTFLoader.js中的代码复制到您自己的文件中,并将
import*添加为“three”中的三个
到该文件的顶部

您应该在
GLFTLoader
中导入
三个

import*从“三”添加为三
到文件的顶部
three/examples/js/loaders/GLTFLoader.ts

编辑:很抱歉,我不明白您想做什么。 我想你的问题是装载顺序的问题。从您的屏幕截图上看,您似乎正在使用webpack。它将在运行代码之前加载所有导入。因此,导入
GLFTLoader
时,
窗口['THREE']=THREE
尚未运行

查看编译后的文件(或Chrome中的源代码),您应该可以看到实际运行的代码


为了解决您的问题,将
three/examples/js/loaders/GLTFLoader.js中的代码复制到您自己的文件中,并将
import*添加为“three”中的三个

GLTFLoader不是类型脚本文件。这是node_modules文件夹中的.js。谢谢你,你的Answare很好用!但由于缺少类型,我收到了很多警告。我发现我可以使用以下代码:
import*as_三from'THREE';常量三:typeof _三=窗口['THREE']=require('THREE');require('three/examples/js/loaders/GLTFLoader')GLTFLoader不是类型脚本文件。这是node_modules文件夹中的.js。谢谢你,你的Answare很好用!但由于缺少类型,我收到了很多警告。我发现我可以使用以下代码:
import*as_三from'THREE';常量三:typeof _三=窗口['THREE']=require('THREE');require('three/examples/js/loaders/GLTFLoader')