这是我想要实现的目标。
我有一个主库,需要加载其他几个需要在主库之后加载的库。
所有辅助库都需要加载主库。
有什么类似于垫片的反面吗?
primarylib.js secondarylib1.js secondarylib2.js secondarylib3.js secondarylib4.js secondarylib5.js ....
我想打电话给:
require(['primarylib'], function(){
})
应首先加载primarylib.js,然后加载所有辅助库。
如果我使用普通的shim方法,我需要将每个二级库设置为需要主lib。 当我想调用libs时,我需要调用require()调用中的所有二级库,而不是单个lib,我不惜一切代价避免使用它。
编辑:一些其他评论和背景
我正在尝试实施blueimp的文件上传器。
对于负载图像的依赖性感到哭泣。
load-image文件的最终配置看起来像这样。
"load-image": {
"path": "lib\/blueimp-load-image\/load-image"
},
"load-image-exif-map": {
"path": "lib\/blueimp-load-image\/load-image-exif-map",
"shim": {
"deps": [
"load-image"
]
}
},
"load-image-exif": {
"path": "lib\/blueimp-load-image\/load-image-exif",
"shim": {
"deps": [
"load-image"
]
}
},
"load-image-ios": {
"path": "lib\/blueimp-load-image\/load-image-ios",
"shim": {
"deps": [
"load-image"
]
}
},
"load-image-meta": {
"path": "lib\/blueimp-load-image\/load-image-meta",
"shim": {
"deps": [
"load-image"
]
}
},
"load-image-orientation": {
"path": "lib\/blueimp-load-image\/load-image-orientation",
"shim": {
"deps": [
"load-image"
]
}
}
如果这样的事情有效,会很棒:
"load-image": {
"path": "lib\/blueimp-load-image\/load-image",
"shim": {
"post-deps": [
"lib\/blueimp-load-image\/load-image-exif-map",
"lib\/blueimp-load-image\/load-image-exif",
"lib\/blueimp-load-image\/load-image-ios",
"lib\/blueimp-load-image\/load-image-meta",
"lib\/blueimp-load-image\/load-image-orientation"
]
}
}
了解为完成此任务需要多少额外配置。
为什么不能只需要像post-deps键那样加载后路径依赖项?
我遇到过几个库,导致需要以这种方式加载,不必要地使我的配置文件膨胀。
答案 0 :(得分:0)
当我想调用libs时,我需要调用require()调用中的所有二级库,而不是单个lib,我不惜一切代价避免使用。
如果我正确理解你的问题,你就不喜欢必须做的事情
require(['secondarylib1', 'secondarylib2', 'secondarylib3', ...], function(...) {
...
});
每当你想加载所有的libs。假设每个secondarylib
需要primarylib
,那么避免这种情况的最简单方法是使用&#34; 引导程序&#34; lib为您加载所有依赖库,例如< / p>
<强> Bootstrapper.js 强>
require(['secondarylib1', 'secondarylib2', 'secondarylib3', ...], function() {});
<强> Main.js 强>
require(['bootstrapper'], function() {
// all libs would be loaded
...
});