引入 ThreeJS 模块并使用 CanvasRenderer 和 Projector

环境:

  • react
  • webpack 2
  • Three.js r91

问题描述:

  • 在项目中使用import引入Three.js的模块
  • 同时使用CanvasRendererProjector

如果只需引入ThreeJS模块到项目中,可以看官方文档Import via modules
https://threejs.org/docs/#manual/introduction/Import-via-modules

但如果还要引用ThreeJSexamples/js/文件夹中一些文件,就会出现问题了。参考github上的一些讨论:
https://github.com/mrdoob/three.js/issues/9562
https://github.com/mrdoob/three.js/issues/10617
尝试了讨论中建议的import的方式引入CanvasRendererProjector(配置webpackresolve.alias)但不成功。于是折中采用了require

具体做法:

  1. npm install --save three
  2. 修改webpack.config.js
     plugins: [
         new webpack.ProvidePlugin({
           'THREE': 'three/build/three'
         }),
         ...
     ]
    
  3. 引用three.jsCanvasRendererProjector
      import 'three'
      require("../../node_modules/three/examples/js/renderers/CanvasRenderer")  
      require("../../node_modules/three/examples/js/renderers/Projector")
    

不过我发现import 'three'会使打包后的js文件多出6M左右... ...
所以最后还是选择直接在HTML中用<script>引入three.min.js,减少页面加载的js文件大小。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • GitChat技术杂谈 前言 本文较长,为了节省你的阅读时间,在文前列写作思路如下: 什么是 webpack,它要...
    萧玄辞阅读 14,341评论 7 110
  • 写在开头 先说说为什么要写这篇文章, 最初的原因是组里的小朋友们看了webpack文档后, 表情都是这样的: (摘...
    Lefter阅读 10,706评论 4 31
  • 版权声明:本文为博主原创文章,未经博主允许不得转载。 webpack介绍和使用 一、webpack介绍 1、由来 ...
    it筱竹阅读 13,853评论 0 21
  • 学习流程 参考文档:入门Webpack,看这篇就够了Webpack for React 一. 简单使用webpac...
    Jason_Zeng阅读 8,354评论 2 16
  • 大宝贝: 你昨晚在香港跟妈妈视频,哭得好伤心,说想妈妈了,不想玩了,想回家,想弟弟了,还说怎么那么长的时间,...
    雪中萍阅读 3,177评论 0 2

友情链接更多精彩内容