我正在开发一个使用基于dojo
框架的ArcGIS的库。如何导入es6中的dojo模块
ArcGIS有我们包含在<script>
标记中的主文件。然后我们简单地要求他们的模块使用require('esri/map'...
。
我的es6库有一些模块,部分需要使用ArcGIS模块。
我正在使用webpack和babel捆绑和转换代码。我没有将ArcGIS捆绑到我的库单个文件中。我期待我的客户将esri加入<script>
,然后使用<script>
包含我的捆绑软件。 在那里,我已经遇到了一个障碍 - dojo multiple define
...所以我已经做了另一个js
排除在加载我的包文件使用dojo require
已经存在(因为arcgis已经启动并加载dojo)的bundle文件。
现在,我不设法解决第二个问题是加载其他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]
});
});
但这是行不通的。
有人吗?
你见过这[线程](https://geonet.esri.com/thread/180988)? – barbsan
我以前见过这个,但是我看到它是打字稿,那里的链接被打破了 - 所以我放弃了它。但是现在,在你发送它之后,我已经挖了更多,并且在github中找到了用户,所以他开发esri-loder ..我检查了他的代码,发现当我们编写'window.require'时,它确实使用'dojo require' ..所以解决方案很简单..现在我将编写一个解决方案(感谢推@ barbsan) –
我也发现了一些东西 - 检查[this](https://stackoverflow.com/questions/32805234/import-existing-amd-module-into-es6-module)。但是这个解决方案使用吞咽。 – barbsan