Three.js: JSM / GLTFLoader: erreur Webpack utilisant jsm

Créé le 9 mars 2019  ·  3Commentaires  ·  Source: mrdoob/three.js

description du problème

J'utilise three.js dans un projet Angular avec webpack comme bundler.
Lorsque vous essayez de charger un fichier GLTF, une ReferenceError est renvoyée:

ERROR Error: Uncaught (in promise): ReferenceError: THREE is not defined ReferenceError: THREE is not defined at GLTFLoader.js:2715

En référence à cette ligne de code:

https://github.com/mrdoob/three.js/blob/1bb6d19805a30e6edb5650d40ab248a3f9ce918e/examples/jsm/loaders/GLTFLoader.js#L2715

Dans mon code TypeScript, j'importe le chargeur de cette façon:

import { GLTFLoader} from 'three/examples/jsm/loaders/GLTFLoader';

Je suppose que pour résoudre ce problème, soit _BufferGeometryUtils_ doit être exporté dans _three.module.js_, soit le bloc de code doit être supprimé de la version jsm de GLTFLoader, car l'objet _THREE_ global n'est pas défini.

J'ai également trouvé que _BufferGeometryUtils_ est une exception dans le script _modularize_:

https://github.com/mrdoob/three.js/blob/e88edaa2caea2b61c7ccfc00d1a4f8870399642a/utils/modularize.js#L15

Version Three.js
  • [] Dev
  • [x] r102
  • [] ...
Navigateur
  • [x] Tous
  • [] Chrome
  • [] Firefox
  • [ ] Internet Explorer
OS
  • [x] Tous
  • [ ] Les fenêtres
  • [] macOS
  • [] Linux
  • [ ] Android
  • [] iOS
Configuration matérielle requise (carte graphique, périphérique VR, ...)
Bug

Commentaire le plus utile

J'ai essayé le GLTFLoader mis à jour dans la branche dev et ça marche très bien, en attendant la sortie.
Merci pour le correctif!

Pour tous ceux qui ont besoin d'une solution urgente, utilisez le package npm 'three-gltf-loader':

import GLTFLoader from 'three-gltf-loader';

Tous les 3 commentaires

Malheureusement, les modules examples/jsm ne sont pas encore entièrement fonctionnels. Je travaille toujours là-dessus.

Un autre utilisateur a signalé le même problème ici:

https://discourse.threejs.org/t/importing-three-r102-examples-jsm-gltfloader-into-angular-7-project/6484

La fusion du # 15582 devrait résoudre ce problème, non?

J'ai essayé le GLTFLoader mis à jour dans la branche dev et ça marche très bien, en attendant la sortie.
Merci pour le correctif!

Pour tous ceux qui ont besoin d'une solution urgente, utilisez le package npm 'three-gltf-loader':

import GLTFLoader from 'three-gltf-loader';

Cette page vous a été utile?
0 / 5 - 0 notes