Uncaught TypeError: Failed to resolve module specifier "three". Relative references must start with either "/", "./", or "../"

Рейтинг: 0Ответов: 1Опубликовано: 08.06.2023

HTML:

    <!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="importmap">
            {
                "imports": {
                    "three": "https://unpkg.com/three@0.150.0/build/three.module.js"
                }
            }
        </script> 
    </head>
    <body>
        <!--объект веб страницы, в котором будет отображаться графика -->
        <div id="container"></div>

        <!-- Подключение скрипта с графической программойS -->
        <script type="module" src="./js/main.js"></script>
    </body>
</html>

JS:

import * as THREE from 'three';
import * as MTLLoader from './libs/MTLLoader.js';
import * as OBJLoader from './libs/OBJLoader.js';

Возникает ошибка из заголовка, я пробовала не только через ссылку на unpkg делать three, но и через путь на компе, ошибка та же. Если не буду импортировать через head, а в body или js коде, то будет вылезать ошибка, что загрузчики не видят three. Версии загрузчиков последние, скачивала 07.06, а three js на пару дней раньше. Помогите пж, у меня дедлайны полыхают, а препод не отвечает(((

Ответы

▲ 0Принят

Проблема заключалась в том, что я написала

import * as MTLLoader from './libs/MTLLoader.js';
import * as OBJLoader from './libs/OBJLoader.js';

А надо было

import { MTLLoader } from './libs/MTLLoader.js';
import { OBJLoader } from './libs/OBJLoader.js';