requireJS 模块别名/重新映射

requirejs module alias/remap

本文关键字:映射 新映射 模块 别名 requireJS      更新时间:2023-09-26

我目前正在将外部代码集成到我们的应用程序中。在这个过程的一部分,我必须用我们的模块替换他们的一个requirejs模块。

显然,我

无法修改他们的代码,否则我必须在每次更新时进行更改。我能做的是修改main.js(requirejs的数据主)。

大致以下是他们拥有的:

requirejs.config({
    packages: [
        'beerpong'
    ]
});

所以他们有这个beerpong包,里面有一些模块。在这些模块中,有beer.js文件。可以通过require('beerpong/beer')来要求它。

除此之外,我的文件在一个单独的文件夹中,比如说vodkapong/beersubstitute.我想要的是,每当有人require('beerpong/beer')时,这需要js实际上为他提供了我的vodkapong/beersubstitute

dr:如何重新映射现有模块以改用我的模块?

PS:可悲的是,我们实际上并不是在写一个啤酒乒乓球游戏......也许有一天!

您可以使用地图选项。它可以为特定模块或具有"*"名称的所有模块重新映射 AMD 模块。一个例子是:

require.config({
    map: {
        "*": {
            "beerpong/beer": "vodkapong/beersubstitute"
        }
    },
    ...
});

你可以做这样的事情——

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) {});