如何在es6中导入dojo模块

时间:2017-06-07 13:27:26

标签: javascript ecmascript-6 dojo amd

我正在开发一个使用基于dojo框架的ArcGIS的库。

ArcGIS具有我们在<script>标记中包含的主文件。然后我们使用require('esri/map'...简单地要求他们的模块。

我的es6库有很多模块,其中一部分需要使用ArcGIS模块。

我使用webpack和babel捆绑和转换代码。我没有在我的库单个文件中捆绑ArcGIS。我希望我的客户添加<script> esri,然后使用<script>添加我的包。 在那里,我已经遇到了障碍 - dojo multiple define ...所以我已经使用已经使用dojo js加载我的捆绑文件的捆绑包中排除了另一个require存在(导致arcgis已经启动并加载了dojo)。

现在,我无法解决的第二个问题是加载其他ArcGIS AMD模块..

我上课MyMap.js

export default MyMap {
   constructor() {
      // Adding here code to create ArcGIS Map
      // this.map = new esriMap....
   }
}

esriMap不存在,必须加载。在一个简单的应用程序中,我们会这样做以实现它

require([
  "esri/Map",
  "esri/views/MapView"
], function(Map, MapView) {

  var map = new Map({
    basemap: "streets"
  });

  var view = new MapView({
    container: "viewDiv",
    map: map,
    zoom: 4,
    center: [15, 65]
  });

});

但这不起作用。

某人?

1 个答案:

答案 0 :(得分:1)

使用PadLeft&#39; dojo我们只需要编写require即可。

没有编写window.require,它在构建过程中失败window.

对于想要使用一些漂亮装载程序的esri用户 - 请查看此one

代码示例:

Can't resolve 'esri/Map'