warnings (imported as 'THREE') was not found in 'three'

这个问题还没解决!

用Vue.js 重构项目的时候,引入three.js和其他相关的东西的时候会出现上面的警告。今天就说一下这个解决办法,但是我觉得这个方法不一定适用所有的项目。

一、引入THREE

首先用 npm 安装了 three, 然后再项目里面引入了。如下代码所示。

import * as THREE from 'three'

这个时候还需要引入其他three.js 的方法。比如 STLLoader.js,因为有些文件 npm 官方库里面没有或者版本不同,所以我直接从官网的例子里面直接拷贝文件到项目直接引用。因为这些函数直接在THREE对象上添加的方法,所以我猜测直接引入就可以添加到THREE上面,所以我就直接用 import ''路径/STLLoader.js" 引入文件,这个时候就报错了,如下图。

因为全局变量没有THREE,所以接下来就开始怎么处理THREE变量全局化。

二、THREE变量全局化

THREE全局化有两种方法,

1是在webpack 里面添加全局变量。

  plugins: [new webpack.ProvidePlugin({'THREE': require.resolve('three')})]

这种方法确实可以但是在我项目里面会出现一个问题。就是 CSS3DObject,方法找不到。

2 直接在 window全局变量上挂载 THREE,具体原理不再这里说了。

window.THREE = THREE

THREE变量全局化解决了,开始引入其他函数。

三、warnings 的出现和解决

因为这些函数是在不同的 .vue组件里面用,所以分开来引入这些函数了。分开来引入的的时候,还是有写THREE变量未定义,所以我就又在STLLoader.js 引入 THREE。

import * as {THREE} from 'three'
THREE.STLLoader = function ( manager ) {this.manager = ( manager !== undefined ) ? manager : THREE.DefaultLoadingManager;};

这个时候就出现了标题的问题了。最后发现是加载顺序的问题。

那么这些警告也确实够烦人的,程序员不要说自己不行,所以要解决!!

这个时候发现是引入文件的顺序出了问题,就是 STLLoader 先加载了, THREE 后加载。这个时候把 THREE的加载放在App.vue里面,然后把其他文件里面的 import * as {THREE} from 'three都删除了,就会返现没有警告了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/553544.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springMVC实体用注解管理,多对多 set集合元素排序问题 解决

实现效果 分类在set集合里不可排序 现要使商家拥有的相同的分来在同一列,需要把set集合里的元素放入list 但是问题是页面是双循环,必须以 . 的形式取集合元素所以需要把list集合声明到实体中,只做临时存储,所以写到dto类,这样就可排序了 我们用一个内部类Collections 的sort ( …

浏览器怎么截长图?怎么使用浏览器截长图?

我们在使用电脑浏览网页的时候有可能会想截取整篇网页,由于页面在电脑上显示不全,阅读的时候都需要滚动条来看,直接截屏根本截不全整个网页,这时候就需要截取网页的长截图了,那么怎么使用浏览器截长图呢? 1、以Edge浏…

three.js 把geometry转换成BufferGeometry

在 three.js 的文档里面有这个方法 https://threejs.org/docs/index.html#api/en/core/BufferGeometry.fromGeometry var bufferGeometry new THREE.BufferGeometry().fromGeometry( geometry );

进栈出栈示意图

进栈出栈示意图 12345 一次进栈 可以是54321,21543,32541等, 原理 : 后进先出,先进后出

Windows11怎么设置时间?Win11时间设置教程

许多小伙伴在使用电脑的时候,也会去关注一下时间,那么针对Windows11系统来说,默认的时间是美区的时间,那么我们要怎么更改呢?其实操作方法十分的简单,下面小编就带着大家一起看看吧! 操作方法: 1、打开菜…

浏览器与JavaScript(一)

作为web前端工程师,每天都会使用浏览器,所以就想总结下浏览器的知识,下面开始正文,本文的东西都是拿Chrome浏览器来说的。 浏览器是多进程。 我们先打开浏览器然后打开一个页面,这个时候我们并不清楚浏览器在后台为我…

java方法的重载与覆盖的返回值类型

public class A extends B{//下面的是方法的覆盖(重写overRiding)public void riding(){System.out.println("this is overRiding ");}//下面两个函数是方法的重载(overLoading),但是返回值类型不同,可以运行public St…

edge浏览器设置兼容模式怎么设置

edge浏览器在win10系统中默认使用,整体来说还算是个不错的浏览器,跟微软账户关联,所以使用的人还挺多。但是对于edge浏览器来说,很多网页都需要使用兼容模式进行打开,这里小编就给大家分享下edge浏览器兼容模式设置的方…

threejs 局部辉光

首先看一下局部辉光的效果。 困扰很久的问题,终于解决了!!! 具体找到解决的方法是看了这里和这里2。也是看了这两个帖子之后才找到解决方法。 这种辉光效果也是用后期处理方法,大家可以先看官网上的这个例子。 rend…

谷歌浏览器截图快捷键是什么?谷歌浏览器截图操作方法介绍

谷歌浏览器的截图方法谷歌浏览器没有自带的截图功能,我们需要下载相关的扩展功能和插件。 方法一、快捷键截图 1、找到键盘按键“Print Screen”按下即可全屏截图。 谷歌浏览器截图快捷键是什么?谷歌浏览器截图操作方法介绍 方法二、软件自带截图功能…

Uncaught (in promise) DOMException 报错

最近在项目里面加入视频自动播放&#xff0c;有时候会报错(RT)&#xff0c;不能自动播放。 <videoid"videoPlayer"v-show"!isNormalCamera"class"preview-video"name"media"controls"controls"autoplay"autoplay&q…

static,构造器,执行顺序

//静态代码块(加载类的时候执行)-->非静态代码块(执行构造器之前执行)-->然后是构造器//......

Win7系统默认浏览器的更改教程

Win7的默认浏览器一般是ie浏览器&#xff0c;但是我们经常会下载使用其它的浏览器&#xff0c;这时候我们就需要更改默认浏览器。那么应该如何更改默认浏览器呢?下面就和小编一起来看看Win7系统默认浏览器的更改教程吧 Win7系统默认浏览器的更改教程 1、首先在开始菜单中打开…

threejs 判断对象是否在可视区内

在threejs 中判断一个对象&#xff08;vector坐标&#xff09;是否在相机的可视区内 let tempV vector.applyMatrix4(camera.matrixWorldInverse).applyMatrix4(camera.projectionMatrix);if ( (Math.abs(tempV.x) > 1) || (Math.abs(tempV.y) > 1) || (Math.abs(tempV.…

求质数

public class Demo2 {//求质数public static void main(String[] args) {for (int i 2; i < 100; i) {int j ;//1 和其本身的数 就不用除了 只要看其他的数可以除进吗如果能除进就不是质数 要跳出去不能打印这个数 这个数不是质数for (j 2; j < i; j)if (i % j 0)bre…

IE浏览器高级设置如何还原

在使用浏览器的时候&#xff0c;可能会给浏览器更换字体、换上自己喜欢的皮肤等等&#xff0c;但是看久了还是想恢复成高级设置&#xff0c;那具体要怎么操作呢?下面小编就给大家详细地介绍一下吧&#xff0c;希望可以帮到你! 步骤如下&#xff1a; 1、进入控制面板&#xf…

threejs 用 ExtrudeGeometry 画管线

首先说一下ExtrudeGeometry ,可以先看官网,这个方法的意思是沿着给定的路径拉伸一个平面图形&#xff0c;然后就成为3D图形了。 所以很明显这个方法要两个参数&#xff0c;路径和图形。 然后接下来说管线的问题。 var radius data[i][Diameter] - 0; // 管子的半径 var sha…

java问题,(x.equals(y) == true)有相同的hashCode 应该是不一定

这个问题在equals没有被重写的情况下是成立 的,如果说x,y是String类型的是没有问题 虽然String类型重写了equals方法但是String比较的是只是字符串值, 对于对象就不一定了 如果没有重写 这个x,y有相同的hashCode 但是如果被重写了equals方法就不一定了,为什么这么说呢,如果我们…

windows7系统取消护眼模式的方法

护眼模式可以让用户更好的保护眼睛&#xff0c;但是因为色调的关系&#xff0c;可能会导致某些软件显示图像出现问题&#xff0c;所以很多用户还是会选择取消这个护眼模式&#xff0c;具体要怎么取消呢&#xff0c;来看下详细的关闭方法吧。 windows7系统取消护眼模式的方法 …

RTMP 在浏览器端播放

RTSP、RTMP 也有很多在说的。然而我就是总结下我最近在使用RTMP的理解。 首先说一下RTMP协议的定义, 实时消息协议&#xff08;英语&#xff1a;Real-Time Messaging Protocol&#xff0c;缩写RTMP&#xff09;也称实时消息传输协议&#xff0c;是最初由Macromedia为通过互联网…