@ymfront

Почему не работает скрипт при использовании type="module"?

Использую скрипт параллакса:

<script type="module" src="./js/parallax.js"></script>
<script>
    var scene = document.getElementById('scene');
    var parallaxInstance = new Parallax(scene);     
</script>


Для того, чтобы сборщик собрал сайт, нужно использовать type="module".

Но при использовании type="module" скрипт parallax.js не работает.
В консоли выводится ошибка: Uncaught ReferenceError: Parallax is not defined

Если я type="module" удаляю, то все работает.
В чем тут проблема, как сделать, чтобы скрипт работал вместе с type="module"?
  • Вопрос задан
  • 146 просмотров
Пригласить эксперта
Ответы на вопрос 1
Aetae
@Aetae Куратор тега JavaScript
Тлен
М.б. так.
<script type="module">
    import Parallax from "./js/parallax.js"
    // или так  import { Parallax } from "./js/parallax.js"

    let scene = document.getElementById('scene');
    let parallaxInstance = new Parallax(scene);     
</script>

Область видимости модулей изолирована, надо импортировать то, что они экспортируют.

Также в самом модуле можно явно задать глобальные переменные (window.Parallax = Parallax;) но лучше так не делать.

Ну и про сборщик сказано не верно, как настроите - так и будет работать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы