我的应用程序有不同的模块,它们按以下方式请求文件:
var urlRepository = require('modules/common/urlrepository/urlrepository');
还需要使用以下方式的一些模块:
require(['modules/common/urlrepository/urlrepository'],function(urlrepository){
});
现在,假设我在2个文件夹中有相同的结构,如:
folder1
|
modules
|
common
folder2
|
modules
|
common
有没有办法可以定义像currentFolder ="folder2"
这样的全局变量
&安培;根据变量,它将加载相应的模块。
我不想更改每个文件中的现有代码。 我想要一些在我的要求电话之前附加的东西。
答案 0 :(得分:0)
假设folder1和folder2是baseUrl目录的子代:
要使用folder1,请将其放在主js文件中:
require.config({paths: {"modules": "folder1/modules"}})
要使用folder2,请将其放入主js文件中:
require.config({paths: {"modules": "folder2/modules"}})
答案 1 :(得分:0)
不推荐,但我认为这可以通过在需求电话前放置代理来实现 您可以定义自己的require函数,从内部调用实际需求。您可以将更改设置为url,以便在您自己的需求中进行检索。
示例代码可以如下给出。
var oldrequire = require;
require = function(){
var prefix = global.mode;
if(typeof arguments[0]==='string'){
oldrequire(prefix+arguments[0]);
return;
}
var arr = arguments[0];
if(arr instanceof Array){
for(var index in arr){
arr[index] = prefix+arr[index];
}
oldrequire(arguments);
}
}
您可能还需要覆盖define函数,因为它使用相对要求来获取文件。
注意:再说一遍。建议不要这样做,因为您不确定特定需求调用的行为方式。