asp*_*yct 14 javascript requirejs
我目前正在将外国代码集成到我们的应用程序中.在这个过程的一部分,我必须用我们的一个替换他们的requirejs模块.
显然我无法修改他们的代码,否则我必须在每次更新时进行更改.我能做的是修改main.js(requirejs的data-main).
这是大致的,它们有什么:
requirejs.config({
packages: [
'beerpong'
]
});
Run Code Online (Sandbox Code Playgroud)
所以他们有这个beerpong包,里面有一些模块.在这些模块中,有beer.js文件.它可能需要一个require('beerpong/beer').
除此之外,我把我的文件放在一个单独的文件夹中vodkapong/beersubstitute.我想要的是,每当有人require('beerpong/beer')需要实际为他服务时,我就会这样做vodkapong/beersubstitute.
tl; dr:如何重新映射现有模块以使用我的模块?
PS:可悲的是,我们实际上并没有写一个啤酒游戏...也许有一天!
Nik*_*los 29
您可以使用地图选项.它可以为特定模块或具有该"*"名称的所有模块重新映射AMD模块.一个例子是:
require.config({
map: {
"*": {
"beerpong/beer": "vodkapong/beersubstitute"
}
},
...
});
Run Code Online (Sandbox Code Playgroud)