I am trying to import the threejs and GLTFLoader modules, both of which ( for testing ) are in the same root/js/ folder..
import * as THREE from './js/build/three.module.js'; // Works fine import { GLTFLoader } from './js/build/GLTFLoader.js'; // Throws a disallowed MIME TYPE error
I get the mimetype issue but the error isn’t thrown when in the three master ‘structure’, so why doesn’t this work?
EDIT:
So when uncommenting the import GLTF line, the error thrown is the following:
Loading module from “http://localhost/dev/project/build/three.module.js” was blocked because of a disallowed MIME type (“text/html”).
It seems to refer to the three.module.js path, however, when that line is commented out, it all loads fine with no errors. The paths are correct for all files/folders too.
Advertisement
Answer
I realise my question was somewhat unclear but essentially what I was trying to do is use the modular three.js functionality whilst retaining the entire project in a single root folder – ie not having to traverse up to the ‘build’ files.
I feel like this is probably something that is often required (in the absence of webpack et al.) since a website would generally be contained within in a single root folder.
After some helpful input I was able to resolve this with the following..
The Folder Structure:
root/ | | -- index.html | | | -- /build/ | | | | -- three.module.js | | | -- /js/ | | -- app.js* | | -- /jsm/ | | -- /libs/ ... | -- /loaders/ ...
The Imports ( in app.js )
import * as THREE from '../build/three.module.js'; import { GLTFLoader } from './jsm/loaders/GLTFLoader.js'; import { TWEEN } from './jsm/libs/tween.module.min.js'; import Stats from './jsm/libs/stats.module.js';
Hope this is of use to anyone searching for the same solution, and thanks as always to the community for the valued assistance!