Javascript 如何在Nuxt.js中导入three.js OBJLoader&引用;无法在模块外部使用导入语句;

Javascript 如何在Nuxt.js中导入three.js OBJLoader&引用;无法在模块外部使用导入语句;,javascript,vue.js,three.js,nuxt.js,objloader,Javascript,Vue.js,Three.js,Nuxt.js,Objloader,完全没有,需要帮助 系统:赢10。浏览器铬。框架:Nuxt,默认配置 我通过npm(通过gitbash)安装了three.js,并使用npm安装three--save。它位于package.json依赖项中,作为的“三个”:“^0.116.1”,。我在~/assets/中保存了一个scene.json文件,该文件是使用>导出场景生成的 无论有无type=“module” 下面是我正在使用的Vue组件:(它仅在客户端渲染。) 将*从“三”导入为三 从“three/examples/jsm/loa

完全没有,需要帮助

系统:赢10。浏览器铬。框架:Nuxt,默认配置

我通过npm(通过gitbash)安装了three.js,并使用
npm安装three--save
。它位于package.json依赖项中,作为
的“三个”:“^0.116.1”,
。我在~/assets/中保存了一个scene.json文件,该文件是使用>导出场景生成的

无论有无
type=“module”

下面是我正在使用的Vue组件:(它仅在客户端渲染。)


将*从“三”导入为三
从“three/examples/jsm/loaders/OBJLoader.js”导入OBJLoader
导出默认值{
姓名:"三",,
数据(){
返回{
摄像机:空,
场景:空,
渲染器:null,
网格:空
}
},
安装的(){
this.init()
},
方法:{
init(){
const container=document.getElementById('threeContainer')
this.camera=新的3.perspective相机(
70,
container.offsetWidth/container.offsetHeight,
0.01,
10
)
此.camera.position.z=1
this.scene=new Three.scene()
const loader=new OBJLoader()
装载机(
“~/assets/scene.json”,
功能(obj){
this.scene.add(obj)
},
函数(xhr){
console.log((xhr.loaded/xhr.total)*100+“%loaded”)
},
功能(err){
控制台错误(错误堆栈)
}
)
this.renderer=new Three.WebGLRenderer({antialas:true})
this.renderer.setSize(container.clientWidth、container.clientHeight)
container.appendChild(this.renderer.doElement)
}
}
}
#三容器{
高度:300px!重要;
背景:黑色;
}

这是ES6语法。第6行应该如下所示:

从'three/examples/jsm/loaders/OBJLoader.js'导入{OBJLoader}

也是真正的答案:

您需要传输三个.js ES6模块文件

将此行添加到nuxt.config.js文件:

构建:{
传输文件:[“三”]
}

您看到了吗?非常感谢!我到处寻找解决办法,直到我看到这个。这应该被设置为答案。