Javascript 如何使用RequireJS加载mapbox gl js

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来加载mapbox gl js库。但是,它不起作用,我总是收到以下错误消息:

未捕获引用错误:未定义mapboxgl

这是我的RequireJS代码:

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”
?谢谢史蒂夫。不幸的是,这没有什么区别。