Javascript 访问要求JS路径配置

Javascript 访问要求JS路径配置,javascript,requirejs,qunit,Javascript,Requirejs,Qunit,我注意到文件中有一种方法: 然后,您可以从模块访问: define(['module'], function (module) { var color = module.config().color; // 'blue' }); define({ load: function (name, req, onload, config) { req([name], function (value) { value.require

我注意到文件中有一种方法:

然后,您可以从模块访问:

define(['module'], function (module) {        
    var color = module.config().color; // 'blue'
});
define({
    load: function (name, req, onload, config) {
        req([name], function (value) {
            value.requireConfig = config;
            onload(value);
        });
    }
});
但是是否也有一种访问顶级路径配置的方法,类似这样的

define(['module', 'require'], function (module, require) {        
    console.log( module.paths() ); // no method paths()
    console.log( require.paths() ); // no method paths()
});

仅供参考,这不适用于生产现场。我试图在一个QUnit测试页面中连接一些奇怪的调试/配置代码。我想列举哪些模块名定义了自定义路径。涉及到这个问题,但只允许我查询已知模块,而不是枚举它们。

我不认为require会在任何地方公开这些信息,至少我在庞大的代码库中找不到它。不过,有两种方法可以实现这一点。第一个也是最明显的是将配置定义为全局变量。第二个,也是更接近您想要的,是创建一个require插件,该插件覆盖load函数以将配置附加到模块:

define(['module'], function (module) {        
    var color = module.config().color; // 'blue'
});
define({
    load: function (name, req, onload, config) {
        req([name], function (value) {
            value.requireConfig = config;
            onload(value);
        });
    }
});

它是可用的,但它是一个实现细节,不应该在生产代码中依赖它(您已经说过这不是为了实现它,而是为了警告其他人!)


主上下文的配置可在
require.s.contexts.\uu.config
上找到。其他配置也将挂起
上下文
属性的挂起状态,该属性具有与之关联的任何名称。

回答得好,但问题很快。为什么不在生产代码中使用它?@Shanimal,因为将来这个对象可能会发生变化(因为它不直接公开或在文档中不可用),并且您不想突然中断生产代码。