Javascript 如何使用RequireJS加载mapbox gl js
对于一个项目,我必须使用RequireJS来加载mapbox gl js库。但是,它不起作用,我总是收到以下错误消息: 未捕获引用错误:未定义mapboxgl 这是我的RequireJS代码:Javascript 如何使用RequireJS加载mapbox gl js,javascript,requirejs,mapbox-gl-js,Javascript,Requirejs,Mapbox Gl Js,对于一个项目,我必须使用RequireJS来加载mapbox gl js库。但是,它不起作用,我总是收到以下错误消息: 未捕获引用错误:未定义mapboxgl 这是我的RequireJS代码: requirejs.config({ { ... 'leaflet-mapbox-gl': 'js/leaflet-mapbox-gl', 'mapbox-gl': 'js/mapbox-gl' } 我想将其与传单地图盒gl一
requirejs.config({
{
...
'leaflet-mapbox-gl': 'js/leaflet-mapbox-gl',
'mapbox-gl': 'js/mapbox-gl'
}
我想将其与传单地图盒gl一起使用。没有RequireJS,一切正常,但显然不是我想要的。我还尝试了以下垫片配置,但未成功:
shim : {
'mapbox-gl': {
exports: ['mapboxgl']
}
'leaflet-mapbox-gl': {
deps: ['leaflet','mapbox-gl']
}
}
如何使用RequireJS正确加载mapbox gl js?我自己解决了这个问题。问题不是mapbox gl js,而是mapbox gl的传单。必须围绕传单mapbox gl包装以下代码,以使其与RequireJS一起工作:
(function (factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module depending on mapboxgl.
define(['mapboxgl'], factory);
} else {
// No AMD.
factory(mapboxgl);
}
}(function (mapboxgl) {
//...original leaflet-mapbox-gl code
}));
这是我的垫片配置:
shim :
{
// other code ...
'mapboxgl' : {
exports: 'mapboxgl'
},
'leaflet-mapbox-gl': {
deps: ['leaflet','mapboxgl']
}
}
希望这对其他人有所帮助我从未使用过RequireJS,但看看文档中的示例,
exports
似乎总是一个字符串,而不是字符串数组。可能:导出:“mapboxgl”
?谢谢史蒂夫。不幸的是,这没有什么区别。