webpackをバンドラーとして使用するAngularプロジェクトでthree.jsを使用しています。
GLTFファイルをロードしようとすると、ReferenceErrorがスローされます。
ERROR Error: Uncaught (in promise): ReferenceError: THREE is not defined
ReferenceError: THREE is not defined at GLTFLoader.js:2715
このコード行を参照すると:
TypeScriptコードでは、ローダーを次のようにインポートします。
import { GLTFLoader} from 'three/examples/jsm/loaders/GLTFLoader';
これを修正すると思います。グローバルな_THREE_オブジェクトが定義されていないため、_BufferGeometryUtils_を_three.module.js_にエクスポートするか、コードブロックをjsmバージョンのGLTFLoaderから削除する必要があります。
また、_BufferGeometryUtils_が_modularize_スクリプトの例外であることがわかりました。
残念ながら、 examples/jsm
モジュールは完全には機能していませんが、申し訳ありません。 まだこれに取り組んでいます。
他のユーザーがここで同じ問題を報告しました:
#15582をマージすると、この問題は解決するはずですよね?
devブランチで更新されたGLTFLoaderを試しましたが、リリースを待って正常に動作しています。
修正してくれてありがとう!
緊急の修正が必要な場合は、「three-gltf-loader」npmパッケージを使用してください。
import GLTFLoader from 'three-gltf-loader';
最も参考になるコメント
devブランチで更新されたGLTFLoaderを試しましたが、リリースを待って正常に動作しています。
修正してくれてありがとう!
緊急の修正が必要な場合は、「three-gltf-loader」npmパッケージを使用してください。
import GLTFLoader from 'three-gltf-loader';