我目前正在将外国代码集成到我们的应用程序中。 在这个过程的一部分,我必须用我们的一个替换他们的requirejs模块。
显然我无法修改他们的代码,否则我必须在每次更新时进行更改。我能做的是修改main.js(requirejs的data-main)。
这是粗略的,他们有什么:
requirejs.config({
packages: [
'beerpong'
]
});
所以他们有这个beerpong
包,里面有一些模块。在这些模块中,有beer.js
个文件。可能需要使用require('beerpong/beer')
。
除此之外,我将文件放在一个单独的文件夹中,说vodkapong/beersubstitute
。我想要的是,每当require('beerpong/beer')
的某个人需要js实际上为他提供vodkapong/beersubstitute
时。
tl;博士:如何重新映射现有模块以改为使用我的模块?
PS:可悲的是,我们实际上并没有写一个啤酒游戏...有一天也许!答案 0 :(得分:29)
您可以使用map option。它可以为特定模块或具有"*"
名称的所有模块重新映射AMD模块。一个例子是:
require.config({
map: {
"*": {
"beerpong/beer": "vodkapong/beersubstitute"
}
},
...
});
答案 1 :(得分:1)
你可以这样做 -
require.config({
paths: {
jquery_ui_scrollbar: 'libs/jquery/jquery.custom-scrollbar'
}
});
require(['dependency1', 'dependency2'], function (dep1, dep2) {
// code goes here
});
在您的定义调用中,您可以执行此操作 -
define(['jquery_ui_scrollbar'], function(scrollbar) {});