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