【问题标题】:requirejs config with arbitrary datarequirejs 配置任意数据
【发布时间】:2012-02-09 08:58:36
【问题描述】:

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

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

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

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

【问题讨论】:

标签: requirejs


【解决方案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

【讨论】:

    猜你喜欢
    • 2013-11-24
    • 1970-01-01
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-29
    • 2014-04-04
    • 2018-08-03
    相关资源
    最近更新 更多