你好,我正在尝试使用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进行模拟,而我尝试做的并不完全正确,因此,如果有更好更好的方法,我可以接受建议。