在我的 webpack 配置中:
resolve: {
alias: {
'three': path.resolve('node_modules', 'three/build/three.js'),
'OrbitControls': path.resolve('node_modules', 'three/examples/js/controls/OrbitControls.js'),
'OBJLoader': path.resolve('node_modules', 'three/examples/js/loaders/OBJLoader.js')
}
在我的模块中:
import * as THREE from 'three' // if I do import THREE from 'three' it fails with three being undefined
import OrbitControls from 'OrbitControls'
import OBJLoader from 'OBJLoader'
如果我使用import * THREE from 'three'
一切都很好,我可以定义三个并轻松完成立方体教程。如果我改为import * as THREE from 'three'
Three.js 已加载 - 所以这不是问题?
我如何获得OrbitControls
和OBJLoader
加载?当我尝试让它们加载时,我得到Uncaught ReferenceError: THREE is not defined(…)
within OrbitControls.js
: THREE.OrbitControls = function ( object, domElement ) {
三未定义。
那么模块的封装有问题吗?我从安装这个https://www.npmjs.com/package/ Three https://www.npmjs.com/package/three
那么什么给出呢?这是 Three.js 在 npm 上打包的问题还是我的 webpack.config 中的配置错误?有没有办法告诉 webpack“让我们打包根 Three.js 文件,然后打包 OrbitControls.js 文件”?
我需要安装three-orbit-controls
和three-obj-loader
通过 npm。
然后在我的模块中,它只需要它们:
var OBJLoader = require('three-obj-loader')(THREE)
var OrbitControls = require('three-orbit-controls')(THREE)
All set!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)