javascript - requirejs 模块别名/重新映射

标签 javascript requirejs

我目前正在将外部代码集成到我们的应用程序中。 在这个过程的一部分,我必须用我们的替换他们的一个 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/

相关文章:

c# - Internet Explorer 插件和网站

当从 jQuery load() 调用 URL 时,javascript 未从 django 模板加载

javascript - 是否可以在一个 html 文件中包含多个 require.js 项目?

javascript - requirejs优化时如何排除插件依赖

javascript - 使用 anchor 而不是按钮时如何防止按钮混用?

javascript - 如何使用 javascript trim 子字符串?

javascript - jQuery 嵌套点击事件

backbone.js - 具有 requirejs 的主干 - 传递给 View 时为 "model is not defined"

javascript - RrequireJS优化器以及优化后加载动态路径

javascript - 如何使用 HTML canvas 获取图像的旋转裁剪