请求特定的RequireJS配置上下文

时间:2016-02-17 22:59:55

标签: javascript requirejs

如果我配置了特定的context

var myRequire = require.config({
  context: 'foo',
  paths: {
    'jquery': 'jquery-1.11.2'
  }
});

然后我可以立即使用myRequire加载模块:

myRequire(['require', 'jquery'], function (require, $) { /* ... */ });

但是,如果我将配置移动到单独的文件,我该如何检索正确的上下文?

根据this answer,我发现requirejs.s.contexts['foo'].require返回与myRequire相同的功能。这看起来很丑陋。另一种选择是为配置定义一个模块并从中返回myRequire。什么是批准的方法?

1 个答案:

答案 0 :(得分:1)

这是有效的:

<强> require.config.js:

define(function () {
    'use strict';

    var myRequire = require.config({
        context: 'foo',
        paths: {
            'jquery': 'jquery-1.11.2'
        }
    });

    return {
        myRequire: myRequire
    };
});

<强> main.js:

// does need path and .js extension
requirejs(['/scripts/require.config.js'], function (requireConfig) {
    var myRequire = requireConfig.myRequire;

    myRequire(['require', 'jquery'], function (require, $) { /* ... */ });
});

我仍然对更好的方式持开放态度,我还没有用r.js对此进行测试。