在 Webpack 中使用 Three.js 以便我可以使用 OrbitControls 的正确方法是什么?

2024-05-13

在我的 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 已加载 - 所以这不是问题?

我如何获得OrbitControlsOBJLoader加载?当我尝试让它们加载时,我得到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-controlsthree-obj-loader通过 npm。

然后在我的模块中,它只需要它们:

var OBJLoader = require('three-obj-loader')(THREE)
var OrbitControls = require('three-orbit-controls')(THREE)

All set!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Webpack 中使用 Three.js 以便我可以使用 OrbitControls 的正确方法是什么? 的相关文章

  • 如何在 React Native 中渲染自定义 3D 对象

    我已经成功使用 Three js expo Three 和 expo gl 在 React Native 中配置了红色立方体的 3D 渲染 但我想让用户渲染他们自己可能拥有的自定义 3D 对象 obj 或 mtl 扩展名 但我不确定如何让他
  • 如何在 Three.js 中从 3D 点创建 3D 表面?

    我正在制作一个项目来制作带有点和线 弯曲或非弯曲 的简单 3D 模型 对于第一个版本 我使用 SVG 元素进行简单渲染 平滑曲线和鼠标事件 现在我正在尝试使用Three js渲染器而不是 SVG 我必须创建 3d 管来替换曲线 但我不知道如
  • 如何使用 HTML 元素阻止 THREE.js 光线投射?

    我希望页面上的 HTML 元素阻止 THREE js 光线投射 我该如何执行此操作 我遇到的问题是 当用户单击打开的 DIV 元素时 光线投射会检索场景中的对象 它会检索 DIV 后面的对象 我不想在 DIV 打开时禁用光线投射 我纯粹希望
  • 无法在 typeScript 和 Webpack 中使用 p5.js

    我有一个使用图书馆的项目p5 js https github com processing p5 js Details 我的 Webpack 配置是 const path require path module exports entry
  • 如何使用 Webpack 将我的 React 网站打包为“生产”?

    我设法使用这个反应热样板 https github com gaearon react hot boilerplate配置脚本来创建和测试一个简单的 React Flux Web 应用程序 现在我有了一个跑步时喜欢的网站npm start
  • 从matrix4()获取翻译

    对于大多数 Three js 开发人员来说 这可能看起来像是一个虚拟问题 但是如何从转换矩阵中提取翻译呢 实际上 我手动提取它指向 矩阵数组位置 12 13 14 提前致谢 如果要从矩阵中提取平移分量 请使用以下模式 var vec new
  • ThreeJS 动画光色

    我制作了一个定向灯 我想随着时间的推移改变颜色 我正在阅读文档 http threejs org docs index html Reference Math Color 但仍然没有启动并运行 在初始化之前我声明变量 var rmapped
  • localhost 拒绝在 chrome mac 中连接

    我正在使用 webpack dev server 使用此命令运行服务器 npm run dev 当我使用npm start 它工作得很好 但不想这样做 因为它是为了生产 到目前为止我的服务器运行良好http 本地主机 3000 http l
  • Three.js点击单个粒子

    In this example http jsfiddle net agqq96bq 2 您可以看到 2 个可点击的粒子 但它们都受到点击的影响 另外 我只想检测粒子上的点击 而不将它们过滤出场景 像这儿 if intersects len
  • 三.js如何通过id(name)获取场景

    我创造了一个场景 如何通过 id name 获取它 喜欢jquery test In three js医生 我刚刚找到scene getObjectById 获取子对象 有一个getObjectByName方法用于此这里在Object3D
  • 配置 webpack 在单独的子文件夹中输出图像/字体

    我管理配置 webpack 将 CSS 和 JS 输出到各自的子目录中 即public asests css and public assets js 但是 我不知道如何对图像和字体执行相同的操作 换句话说 我想输出图像public ass
  • 错误:意外的标记:punc ()

    我正在尝试构建使用 webpack 的项目 我的 UglifyJS 选项如下所示 new UglifyJSPlugin sourceMap false uglifyOptions compress warnings false output
  • 使用 Three.js 中的设备方向控件进行对象旋转

    我正在迈出使用 JavaScript 进行编码并使用 Three js 的第一步 我正在尝试 Threejs org 的这个例子 http trijs org examples misc controls deviceorientation
  • 使用 webpack 保留输出目录中的文件夹结构

    我有以下文件夹结构 index html app index tsx 与 webpack 捆绑后 我希望有以下输出目录 并将bundle js注入到index html中 dist index html dist app bundle js
  • 如何让热模块重新加载在打字稿 monorepo 中工作

    因此 在过去的几天里 我一直在尝试在基于 Typescript React Koa Mongo 的 monorepo 中进行热模块重新加载 但完全徒劳无功 我感觉我的头一直在撞砖墙 HMR 的文档少之又少 几乎互联网上的所有内容都只是par
  • Webpack:如何使用动态捆绑组合两个完全独立的捆绑包

    我花了很多时间研究这个问题 但毫无结果 我知道代码分割和动态捆绑在 Webpack 中如何使用import承诺API 然而 我的用例是我有两个完全独立的包 使用不同的 webpack 版本分别生成 为了给您提供视角 我正在构建 React
  • 使用 Three.js 制作带孔的圆角盒

    我需要创建一个 4 个侧面但顶部和底部都有圆角的盒子 Three js 有一个很好的例子webgl 几何 形状 https threejs org examples webgl geometry shapes我正在尝试复制它以在绿色圆框上添
  • Three.js、自定义着色器和具有透明度的 png 纹理

    我有一个非常简单的 PNG 纹理 一个带有透明背景的灰色圆圈 我用它作为制服map for a THREE ShaderMaterial var uniforms THREE UniformsUtils merge basicShader
  • 如何使用rollupjs动态导入由参数定义名称的模块?

    src dynamicImport js export default function dynamicImport path const parts path split 去掉后缀 js const namespace parts pop
  • 如何检查 webgl(two.js) 的客户端性能

    我有一个使用 Three JS 的图形项目 现在我想自动检查客户端 GPU 性能并计算可以在应用程序中加载多少元素 我想到了诸如 GPU 基准测试之类的东西 看一眼stats js https github com mrdoob stats

随机推荐