Estoy usando three.js en un proyecto Angular con webpack como paquete.
Al intentar cargar un archivo GLTF, se lanza un ReferenceError:
ERROR Error: Uncaught (in promise): ReferenceError: THREE is not defined
ReferenceError: THREE is not defined at GLTFLoader.js:2715
Refiriéndose a esta línea de código:
En mi código TypeScript, importo el cargador de esta manera:
import { GLTFLoader} from 'three/examples/jsm/loaders/GLTFLoader';
Supongo que para solucionar esto, o _BufferGeometryUtils_ debe exportarse en _three.module.js_ o el bloque de código debe eliminarse de la versión jsm de GLTFLoader, ya que el objeto global _THREE_ no está definido.
También encontré que _BufferGeometryUtils_ es una excepción en el script _modularize_:
Lamentablemente, los módulos examples/jsm
aún no funcionan completamente. Todavía estoy trabajando en esto.
Otro usuario informó el mismo problema aquí:
La fusión de # 15582 debería resolver este problema, ¿verdad?
Probé el GLTFLoader actualizado en la rama de desarrollo y está funcionando bien, esperando el lanzamiento.
¡Gracias por la solución!
Para cualquiera que necesite una solución urgente, utilice el paquete npm 'three-gltf-loader':
import GLTFLoader from 'three-gltf-loader';
Comentario más útil
Probé el GLTFLoader actualizado en la rama de desarrollo y está funcionando bien, esperando el lanzamiento.
¡Gracias por la solución!
Para cualquiera que necesite una solución urgente, utilice el paquete npm 'three-gltf-loader':
import GLTFLoader from 'three-gltf-loader';