requireJS将配置信息传递给所有带“*”通配符的模块

时间:2013-05-28 20:01:41

标签: javascript configuration requirejs amd

我需要使用requireJS将配置值传递到我的所有AMD模块中。

我可以通过使用以下示例将配置值传递给特定模块;如requireJS API config modules文档中所述

requirejs.config({
    config: {
        'bar': {
            raw: true
        },
        'baz': {
            raw: true
        },
        ...
    }
});

以上工作正常,但我有50个模块,我想传递相同的配置值,这些可能会增加或改变。我可以定义50个模块名称,如上所述,并传递值,但我真的不想按名称定义每个模块并维护该列表,而是我想做这样的事情。

requirejs.config({
    config: {
        '*': {
            raw: true
        }
    }
});

我已经尝试过以上但是没有用。

requireJS config map似乎支持“*”通配符,但我没有看到任何类似“config”的提及。我已经搜索过,但我想我的搜索日期很糟糕。

所以,问题是:“config”是否支持“*”通配符,我只是遇到了问题?或者还有其他方法可以实现这一目标吗?

1 个答案:

答案 0 :(得分:5)

我不知道直接使用通配符语法的方法,但您可以通过data-main底部的simplest模块定义完成相同的操作:

requirejs.config({
    // normal stuff
});

define('moduleconfig', {
    color: "black",
    size: "unisize"
});

然后不需要特殊的“模块”模块,只需要'moduleconfig'模块:

define( ['underscore', 'jquery', 'moduleconfig'], function( _, $, moduleconfig) {

    console.log('Color', moduleconfig.color)

 });