配置StealJS加载程序以导入openlayers 3调试版

时间:2015-10-30 16:16:20

标签: javascript openlayers-3 stealjs

我使用StealJS加载Openlayers库。它似乎加载了调试 - 未构建版本的openlayers与内置版本不同。

使用内置版本时,它可以正常工作并返回实际的ol对象。使用调试版时,它返回一个包含ol的包装器对象。这会打破对ol.map等的所有调用。

我正在导入这样的ol文件:

import ol from 'openlayers';

这是使用chrome:

中的console.log返回的ol-debug.js对象
{
CLOSURE_NO_DEPS: true
COMPILED: false
goog: Object
module: undefined
ol: Object //this is the object I want
__proto__: Object
}

使用内置版本,对象是包含动画,地图,图层等的实际ol对象。

使用npm config:

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

如果没有调试版本的文件,很难调试应用程序。切换到调试版本会破坏所有小部件,因为ol.map现在需要成为ol.ol.map,因为ol嵌套在父对象中。

1 个答案:

答案 0 :(得分:0)

解决方案是添加一个exports属性:

"meta": {
  "openlayers": {
    "format": "global",
    "exports": "ol"
  }
},