requirejs配置任意数据

时间:2012-02-09 08:58:37

标签: requirejs

在Dojo 1.7 AMD网络应用程序中,您还可以在配置对象中定义任意数据(http://dojotoolkit.org/reference-guide/loader/amd.html)。

  

配置对象还可用于设置任意特定于应用程序的配置数据。配置对象的所有属性都被浅层复制到require.rawConfig

我查看了requirejs配置页面(http://requirejs.org/docs/api.html#config),但我在这里找不到类似的功能。但我没有查看源代码。

是否有可能在requirejs配置中存储任意信息并获取访问权限? 非常感谢提前 沃尔夫冈

1 个答案:

答案 0 :(得分:1)

据我所知,它不受支持 您需要在require.js源代码中插入1行才能获得此功能。

以下是一个例子:

require.config({
  test: "one",
  paths: {
    'jquery': 'libs/jquery/1.7.1/jquery',
...

除了正常值,您还可以存储任意信息。

然后,您必须使用文本编辑器打开requirejs源代码 大致在380 - 390行(取决于您的版本),功能“makeRequire”:
这个函数调用另一个叫做“mixin”的东西:

 mixin(modRequire, {
            nameToUrl: makeContextModuleFunc(context.nameToUrl, relModuleMap),
            toUrl: makeContextModuleFunc(context.toUrl, relModuleMap),
            defined: makeContextModuleFunc(context.requireDefined, relModuleMap),
            specified: makeContextModuleFunc(context.requireSpecified, relModuleMap),
            isBrowser: req.isBrowser,
            rawConfig: config
        });

在“isBrowser”之后写下“rawConfig:config”。

现在,在您的amd模块中:

define(['require'], function (require){
  alert (require.rawConfig.test);
  ...

更新:
这个功能将在requirejs 1.1中得到体现 https://github.com/jrburke/requirejs/issues/182