How to add AMD/legacy dependency (leaflet) with sub dependencies in requirejs

Viewed 592

I installed a AMD module called leaflet and successfully using it as "L". Next I need a plugin called leaflet.draw but I get confused about the dependencies. Consider the following code:

requirejs.config({
    baseUrl: 'bower_components',
    paths: {
        leaflet: 'leaflet/dist/leaflet-src',
        leafletdraw: 'leaflet-draw/dist/leaflet.draw-src'
        ...

requirejs(["leaflet", "leafletdraw"], function(L, leafletdraw) {
    var map = new L.Map('map');
    ...

This gives a referenceError: L is not defined at Leaflet.draw.js:4. So I guess it needs the leaflet (L) as a dependency, right? I then tried to add it in the shim config:

shim: {
    leafletdraw: {
        deps: 'leaflet'
    }
}

This results in a "Invalid require call". So my question is: How do I properly require a plugin with subdependencies?

  • The modules are installed with "bower install leaflet" and "bower install leaflet-draw" respectivily. But im not sure if leaflet-draw is AMD enabled. Why isnt that stated in repos docs? Can I assume it is enabled by default?

  • This is what I try to achive: http://codepen.io/osmbuildings/pen/LVJzWw, but with requirejs.

1 Answers
Related