如果我配置了特定的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
。什么是批准的方法?
答案 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对此进行测试。