在我的WebPack配置:在Webpack中使用Three.js的正确方法是什么,所以我可以使用OrbitControls?
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(…)
在OrbitControls.js
之内:THREE.OrbitControls = function (object, domElement) {
THREE未定义。
因此,模块的包装有问题吗?我安装了这个从https://www.npmjs.com/package/three
那么是什么给? Three.js是如何打包在npm上的还是它在我的webpack.config中的配置错误?有没有办法告诉webpack“让我们打包root three.js文件,然后打包OrbitControls.js文件”?