Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 请求特定的RequireJS配置上下文_Javascript_Requirejs - Fatal编程技术网

Javascript 请求特定的RequireJS配置上下文

Javascript 请求特定的RequireJS配置上下文,javascript,requirejs,Javascript,Requirejs,如果我配置了特定的: 然后,我可以立即使用myRequire加载模块: myRequire(['require', 'jquery'], function (require, $) { /* ... */ }); 但是,如果我将配置移动到一个单独的文件中,如何检索适当的上下文 基于此,我发现requirejs.s.contexts['foo'].require返回与myRequire相同的函数。这似乎有点骇人听闻。另一个选项是为配置定义一个模块并从中返回myRequire。批准的方法是什么?这

如果我配置了特定的:

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

myRequire(['require', 'jquery'], function (require, $) { /* ... */ });
但是,如果我将配置移动到一个单独的文件中,如何检索适当的上下文

基于此,我发现
requirejs.s.contexts['foo'].require
返回与
myRequire
相同的函数。这似乎有点骇人听闻。另一个选项是为配置定义一个模块并从中返回
myRequire
。批准的方法是什么?

这是可行的:

require.config.js:

define(function () {
    'use strict';

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

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

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

define(function () {
    'use strict';

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

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

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

我仍然对更好的方法持开放态度,我还没有用r.js测试过这一点。

这几乎是我昨晚看到你的问题时想到的,但当时我很忙。