exp*_*nit 8 javascript qunit requirejs
我在文档中注意到有一种方法可以将自定义配置传递到模块中:
requirejs.config({
baseUrl: './js',
paths: {
jquery: 'libs/jquery-1.9.1',
jqueryui: 'libs/jquery-ui-1.9.2'
},
config: {
'baz': {
color: 'blue'
}
}
});
Run Code Online (Sandbox Code Playgroud)
然后您可以从模块访问:
define(['module'], function (module) {
var color = module.config().color; // 'blue'
});
Run Code Online (Sandbox Code Playgroud)
但是还有一种方法可以访问顶级路径配置,就像这样吗?
define(['module', 'require'], function (module, require) {
console.log( module.paths() ); // no method paths()
console.log( require.paths() ); // no method paths()
});
Run Code Online (Sandbox Code Playgroud)
仅供参考,这不适用于生产现场.我正在尝试在QUnit测试页面中连接一些奇怪的调试/配置代码.我想枚举哪些模块名称定义了自定义路径.这个问题触及了这个问题,但只让我查询已知的模块,而不是枚举它们.
dhe*_*man 20
它是可用的,但它是一个实现细节,不应该依赖于生产代码(您已经说过它不适用于此,但是对其他人的公平警告!)
主要上下文的配置可在以下位置获得require.s.contexts._.config.其他配置也将挂起该contexts属性,其中包含与之关联的任何名称.
我不相信要求暴露在任何地方,至少我找不到它通过巨大的代码库.有两种方法可以实现这一点.第一个也是最明显的是将配置定义为全局变量.第二个,更接近你想要的是创建一个require插件来覆盖load函数以将配置附加到模块:
define({
load: function (name, req, onload, config) {
req([name], function (value) {
value.requireConfig = config;
onload(value);
});
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4850 次 |
| 最近记录: |