我正在开发一个使用ArcGIS的库,它基于dojo
框架。
ArcGIS 具有我们包含在 <script>
中的主文件标签。然后我们简单地使用 require('esri/map'...
来要求他们的模块.
我的es6库有很多模块,其中一部分需要使用ArcGIS模块。
我正在使用 webpack 和 babel 来捆绑和转换代码。我没有将 ArcGIS 捆绑在我的库单个文件中。我希望我的客户将 esri 添加到 <script>
然后使用 <script>
包含我的包。
在那里我已经遇到了一个障碍 - dojo multiple define
...所以我又做了一个js
从使用 dojo require
加载我的 bundle 文件的 bundle 中排除已经存在(因为 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]
});
});
但这不起作用。
某人?
最佳答案
为了使用dojo
的require
,我们只需要编写window.require
就可以了。
没有编写窗口。
它在构建过程中失败无法解析'esri/Map'
对于想要使用一些不错的加载程序的 esri 用户 - 请查看此 one
代码示例:
export default class myMap {
constructor(div) {
window.require(['esri/Map', 'esri/views/MapView'], (esriMap, esriMapView) => {
const map = new esriMap({
basemap: "streets"
});
const view = new esriMapView({
container: div,
map: map,
zoom: 4,
center: [15, 65]
});
});
}
}
关于javascript - 如何在es6中导入dojo模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44414055/