首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Webpack内部使用Three.js的正确方法是什么,这样我就可以使用OrbitControls了?

在Webpack内部使用Three.js的正确方法是什么,这样我就可以使用OrbitControls了?
EN

Stack Overflow用户
提问于 2016-11-11 21:36:28
回答 1查看 1.7K关注 0票数 2

在我的webpack配置中:

代码语言:javascript
复制
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')
      }

在我的模块中:

代码语言:javascript
复制
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是加载的-所以这不是问题吗?

如何加载OrbitControlsOBJLoader?当我试图让它们加载时,我会在OrbitControls.js中获得OrbitControls.jsTHREE.OrbitControls = function ( object, domElement ) { 3是未定义的。

所以模块的包装有问题吗?我从https://www.npmjs.com/package/three安装了这个

那是怎么回事?Three.js是如何打包在npm上的,还是我的webpack.config中的一个错误配置?有没有办法告诉webpack“让我们打包根three.js文件,然后打包OrbitControls.js文件”?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-11 23:03:23

我需要通过npm安装three-orbit-controlsthree-obj-loader

然后在我的模块中,它只是简单地要求它们:

代码语言:javascript
复制
var OBJLoader = require('three-obj-loader')(THREE)
var OrbitControls = require('three-orbit-controls')(THREE)

准备好了!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40556588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档