Three.js: JSM / GLTFLoader: Webpack-Fehler mit jsm

Erstellt am 9. März 2019  ·  3Kommentare  ·  Quelle: mrdoob/three.js

Beschreibung des Problems

Ich verwende three.js in einem Angular-Projekt mit Webpack als Bundler.
Beim Versuch, eine GLTF-Datei zu laden, wird ein ReferenceError ausgelöst:

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

Bezugnehmend auf diese Codezeile:

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

In meinem TypeScript-Code importiere ich den Loader folgendermaßen:

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

Ich denke, um dies zu beheben, muss entweder _BufferGeometryUtils_ in _three.module.js_ exportiert werden oder der Codeblock muss aus der jsm-Version von GLTFLoader entfernt werden, da das globale _THREE_-Objekt nicht definiert ist.

Ich fand auch, dass _BufferGeometryUtils_ eine Ausnahme im _modularize_-Skript ist:

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

Three.js Version
  • [] Dev
  • [x] r102
  • [] ...
Browser
  • [x] Alle von ihnen
  • [ ] Chrom
  • [ ] Feuerfuchs
  • [ ] Internet Explorer
Betriebssystem
  • [x] Alle von ihnen
  • [] Windows
  • [ ] Mac OS
  • [] Linux
  • [ ] Android
  • [] iOS
Hardwareanforderungen (Grafikkarte, VR-Gerät, ...)
Bug

Hilfreichster Kommentar

Ich habe den aktualisierten GLTFLoader im Dev-Zweig ausprobiert und er funktioniert einwandfrei und wartet auf die Veröffentlichung.
Danke für die Fehlerbehebung!

Verwenden Sie für alle, die dringend eine Lösung benötigen, das npm-Paket 'three-gltf-loader':

import GLTFLoader from 'three-gltf-loader';

Alle 3 Kommentare

Leider sind die Module examples/jsm noch nicht voll funktionsfähig. Ich arbeite immer noch daran.

Ein anderer Benutzer hat hier das gleiche Problem gemeldet:

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

Das Zusammenführen von # 15582 sollte dieses Problem lösen, oder?

Ich habe den aktualisierten GLTFLoader im Dev-Zweig ausprobiert und er funktioniert einwandfrei und wartet auf die Veröffentlichung.
Danke für die Fehlerbehebung!

Verwenden Sie für alle, die dringend eine Lösung benötigen, das npm-Paket 'three-gltf-loader':

import GLTFLoader from 'three-gltf-loader';

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen