无法将.obj文件导入我的Nuxt组件

问题描述 投票:0回答:1

在我的Nuxt项目中,我有一个使用Three.js制作的背景场景。现在,我想将一个.obj加载到该场景中。因此,必须通过组件加载模型。

我的index.vue组件:

export default {
  name: 'scene',
  data () {
    return {
    }
  },
  mounted () {
    if(!this.scene) this.scene = new Scene({
      $canvas: this.$refs.canvas,
    });
  }
}

在我的.js文件中(在组件内部,.vue也位于其中:]]]

import * as THREE from "three";
import Common from "../Common";
import { OBJLoader2 } from '~/node_modules/three/examples/jsm/loaders/OBJLoader2.js';
const Model = require('@/assets/models/background_1.obj')

export default class Model_1{
    constructor(){
        this.init();
    }

    init(){
        var loader = new OBJLoader2();
        console.log(Model)
        loader.load(Model, (root) => {
          Common.scene.add(root);
        });
    }    
}

Nuxt配置:

export default {
  mode: 'universal',
  build: {
    vendor: ['hammerjs'],
    extend (config, ctx) {
      config.module.rules.push(
      { 
        test: /\.(obj|gltf)$/i,
        loader: 'file-loader',
      }
      );
    }
  }
}

出现以下错误:Cannot find module '@/assets/models/background_1.obj'

尽管.vue组件将查看资产文件夹,获取obj并仅反映url。但它正在寻找一个我不太了解的模块🤷️.obj文件位于asset / models文件夹中。

在我的Nuxt项目中,我有一个使用Three.js制作的背景场景。现在,我想将一个.obj加载到该场景中。因此,必须通过组件加载模型。我的index.vue组件:导出默认值{...

vue.js three.js nuxt.js
1个回答
0
投票

[确定,尽管每个文档都说如果文件位于static/file中,则必须使用src static/file。现在这对我不起作用,而仅使用file作为源起作用。它正在工作,但是有人可以澄清一下,因为我已经有两天了,而且有很多偏头痛这个问题😐

© www.soinside.com 2019 - 2024. All rights reserved.