使用requirejs配置映射到扩展的现有模块

时间:2018-06-28 07:07:57

标签: requirejs amd

你好,我正在尝试使用requirejs映射来将另一个模块注入其他模块,而我正在注入的模块是在基本模块上构建的。 我需要注入的模块和要构建的模块都在另一个第三方库中,并且都称为模块。

coremodules.js:

define('X');
define('A', ['X']);
define('B', ['X']);

我的扩展名:

define('ExtendedX', ['X']);

我试图这样使用requirejs映射配置:

var require = {
    map: {
        '*': {
            'X': 'ExtendedX'
        }
    }
};

问题是,这将创建循环依赖关系,并且将插入到“ ExtendedX”中的模块“ X”未定义。 我知道我可以使用绝对ID指定映射配置,而不是使用*来指定A和B,这样会将'ExtendedX'留给旧的'X'模块,而不会引起循环依赖。

但是我不知道将来什么时候会有另一个需要'X'的模块,我也需要编辑配置以注入它。有没有一种方法可以更自动地配置它,例如“为该模块以外的所有模块注入此模块”:

['*', '!ExtendedX']

我知道应该使用map进行模拟,而我尝试做的并不完全正确,因此,如果有更好更好的方法,我可以接受建议。

0 个答案:

没有答案