gpt4 book ai didi

requirejs - 如何在 requirejs 中添加带有子依赖项的 AMD/旧版依赖项(传单)

转载 作者:行者123 更新时间:2023-12-02 04:21:24 25 4
gpt4 key购买 nike

我安装了一个名为 leaflet 的 AMD 模块,并成功将其用作“L”。接下来我需要一个名为 leaflet.draw 的插件,但我对依赖项感到困惑。考虑以下代码:

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');
...

这给出了一个引用错误:L未在Leaflet.draw.js:4中定义。所以我猜它需要传单(L)作为依赖项,对吗?然后我尝试将其添加到垫片配置中:

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

这会导致“无效的 require 调用”。所以我的问题是:如何正确地需要具有子依赖项的插件?

  • 模块通过“bower install leaflet”和“bower分别安装传单绘制”。但我不确定传单绘制是否已启用 AMD。为什么 repo 文档中没有说明这一点?我可以假设吗默认启用吗?

  • 这就是我试图实现的目标: http://codepen.io/osmbuildings/pen/LVJzWw ,但是使用 requirejs。

最佳答案

解决方案:shim leaflet 本身,并让它导出 'L'。然后将 deps 放入插件中即可工作。我的完整配置:

requirejs.config({
baseUrl: 'bower_components',
paths: {
jquery: 'jquery/dist/jquery.min',
leaflet: 'http://cdn.leafletjs.com/leaflet-0.7.3/leaflet',
'leaflet-draw': 'http://cdn.osmbuildings.org/Leaflet.draw/0.2.0/leaflet.draw',
OSMBuildings: ['http://cdn.osmbuildings.org/OSMBuildings-Leaflet']
},
shim: {
leaflet: {
exports: 'L'
},
'leaflet-draw': {
deps: ['leaflet']
},
OSMBuildings: {
deps: ['leaflet'],
exports: 'OSMBuildings'
}
}
});

requirejs(["jquery", "leaflet", "leaflet-draw", "OSMBuildings"], function($, L, dummy, OSMBuildings) {
var map = new L.Map('map');

关于requirejs - 如何在 requirejs 中添加带有子依赖项的 AMD/旧版依赖项(传单),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43954077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com