Настройка загрузчика StealJS для импорта отладочной версии openlayers 3

Я использую StealJS для загрузки библиотеки Openlayers. Похоже, что загрузка отладочной версии openlayers отличается от встроенной версии.

При использовании встроенной версии она работает правильно и возвращает фактический объект ol. При использовании отладочной версии он возвращает объект-оболочку, содержащий ol. Это прерывает все вызовы ol.map и т. Д.

Я импортирую файл ol следующим образом:

import ol from 'openlayers';

Это объект ol-debug.js, возвращаемый с помощью console.log в chrome:

{
CLOSURE_NO_DEPS: true
COMPILED: false
goog: Object
module: undefined
ol: Object //this is the object I want
__proto__: Object
}

Используя встроенную версию, объект представляет собой настоящий объект, содержащий анимацию, карту, слой и т. Д.

Используя конфигурацию npm:

"npmIgnore": [
  "openlayers"
],
"paths": {
  "openlayers": "node_modules/openlayers/dist/ol-debug.js"
},
"meta": {
  "openlayers": {
    "format": "global"
  }
},

Отладка приложений без отладочной версии файла действительно затруднительна. А переход на отладочную версию нарушает все виджеты, потому что ol.map теперь должен стать ol.ol.map, так как ol вложен в родительский объект.

1 ответ

Решение

Решением было добавить свойство экспорта:

"meta": {
  "openlayers": {
    "format": "global",
    "exports": "ol"
  }
},
Другие вопросы по тегам