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:
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:
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:
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';
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';