Настройка загрузчика 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
}

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

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

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

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


person twoLeftFeet    schedule 30.10.2015    source источник


Ответы (1)


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

"meta": {
  "openlayers": {
    "format": "global",
    "exports": "ol"
  }
},
person twoLeftFeet    schedule 22.06.2016