Three.js: JSM / GLTFLoader:使用jsm的Webpack错误

创建于 2019-03-09  ·  3评论  ·  资料来源: mrdoob/three.js

问题描述

我在一个以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

参考以下代码行:

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

在我的TypeScript代码中,我通过以下方式导入加载程序:

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

我猜想解决此问题,要么_BufferGeometryUtils_不必在_three.module.js_中导出,要么必须从GLTFLoader的jsm版本中删除代码块,因为未定义全局_THREE_对象。

我还发现_BufferGeometryUtils_是_modularize_脚本中的异常:

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

Three.js版本
  • []开发
  • [x] r102
  • [] ...
浏览器
  • [x]全部
  • [] Chrome
  • []火狐
  • [ ] IE浏览器
操作系统
  • [x]全部
  • [] Windows
  • [ ] 苹果系统
  • [] Linux
  • [] Android
  • [] iOS
硬件要求(图形卡,VR设备等)

最有用的评论

我已经在dev分支中尝试了更新的GLTFLoader,它工作正常,等待发布。
感谢您的修复!

对于需要紧急修复的任何人,请使用'three-gltf-loader'npm软件包:

import GLTFLoader from 'three-gltf-loader';

所有3条评论

不幸的是, examples/jsm模块没有完全正常运行,但是很抱歉。 仍在努力。

另一个用户在这里报告了相同的问题:

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

合并#15582应该可以解决此问题,对吗?

我已经在dev分支中尝试了更新的GLTFLoader,它工作正常,等待发布。
感谢您的修复!

对于需要紧急修复的任何人,请使用'three-gltf-loader'npm软件包:

import GLTFLoader from 'three-gltf-loader';

此页面是否有帮助?
0 / 5 - 0 等级