XXX не определен - Импортирование класса из модуля OpenLayers Node в Django

Испытываю трудности с тем, чтобы заставить Node OpenLayers работать в Django. npm и ol установлены, и файлы находятся в папке node_modules в моем проекте. Я включил папку node_modules в мой STATICFILES_DIRS в settings.py.

Я включаю модули OpenLayers в свой шаблон, map.html:

<script type="module" src="{% static 'ol/dist/ol.js' %}"></script>
<script type="module" src="{% static 'ol/Map.js' %}"></script>
<script type="module" src="{% static 'ol/View.js' %}"></script>
<script type="module" src="{% static 'ol/layer/Tile.js' %}"></script>
<script type="module" src="{% static 'ol/source/OSM.js' %}"></script>
<script type="text/javascript">
    import "{% static 'ol/layer/Tile.js' %}";
    const map = new ol.Map({
        target: 'my-map',
        layers: [
            new ol.Layer.Tile({
                source: ol.Source.OSM()
            })
        ],
        view: new ol.View({
            center: [40, -70],
            zoom: 2
        })
    });
</script>

Похоже, что это работает, поскольку я вижу, что файлы загружаются в инструментах разработчика моего браузера.

Но когда я пытаюсь использовать классы внутри модулей, я получаю ошибку:

Uncaught ReferenceError: ol is not defined


ДРУГИЕ МЕТОДЫ, КОТОРЫЕ Я ПРОБОВАЛ:

Я также пробовал вызывать имена классов напрямую:

<script type="text/javascript">
    const map = new Map({
        target: 'my-map',
        layers: [
            new Tile({
                source: OSM()
            })
        ],
        view: new View({
            center: [40, -70],
            zoom: 2
        })
    });
</script>

Но получаем ту же ошибку:

Uncaught ReferenceError: Tile is not defined

В документации OpenLayers показано использование оператора import:

import "{% static 'ol/layer/Tile.js' %}";

но когда я пробую это, я получаю ошибку:

Uncaught SyntaxError: Cannot use an import statement outside a module

Я также нашел рекомендации попробовать:

const Tile = require("{% static 'ol/layer/Tile.js' %}");

но получаем ошибку:

Uncaught ReferenceError: Require is not defined
Вернуться на верх