我目前正在将外部代码集成到我们的应用程序中。 在这个过程的一部分,我必须用我们的替换他们的一个 requirejs 模块。
显然我不能修改他们的代码,否则我必须在每次更新时进行更改。我能做的就是修改 main.js(requirejs 的 data-main)。
大致来说,这是他们拥有的东西:
requirejs.config({
packages: [
'beerpong'
]
});
所以他们有这个 beerpong
包,里面有一些模块。在这些模块中,有一个 beer.js
文件。它可以通过 require('beerpong/beer')
来要求。
除此之外,我还有我的文件,在一个单独的文件夹中,比如 vodkapong/beersubstitute
。我想要的是,每当有人 require('beerpong/beer')
时,requirejs 实际上会为他提供我的 vodkapong/beersubstitute
。
tl;dr:如何重新映射现有模块以改为使用我的模块?
PS:遗憾的是,我们实际上并没有在编写啤酒乒乓球游戏......也许有一天!
最佳答案
您可以使用 map option .它可以为特定模块或所有具有 "*"
名称的模块重新映射 AMD 模块。一个例子是:
require.config({
map: {
"*": {
"beerpong/beer": "vodkapong/beersubstitute"
}
},
...
});
关于javascript - requirejs 模块别名/重新映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18892564/