我不确定这是否可行,我尝试使用*
配置中的通配符paths
。
我想从子目录jquery/*
加载名为libs/jquery/src
的请求模块,但是应该加载与baseUrl
相关的其他文件。这就是我尝试过的:
({
baseUrl: ".",
name: "main",
out: "main.build.js",
paths: {
"jquery/*": "libs/jquery/src"
}
})
这可能是这样或那样的吗?
示例:
require([
"jquery/ajax.js",
"view/table.js"
], function(tableView){
var t = new tableView;
return {
tableView: tableView
};
});
将从jquery/ajax.js
./libs/jquery/src/ajax.js
和view/table.js
加载./view/table.js
。
修改
我也试过这个paths
配置:
paths: {
"jquery": "libs/jquery/src"
}
在这两种情况下,我都会收到此错误:Error: Error: ENOENT, no such file or directory 'Development/rjs/jquery/ajax.js'
,而要查看的预期路径为Development/rjs/libs/jquery/src/ajax.js
答案 0 :(得分:0)
没有实际的模式匹配。但是,RequireJS可以匹配路径的开头以将其替换为其他内容,因此您可以这样做:
paths: {
"jquery": "libs/jquery/src"
}
有了这个,那么如果你这样做:
require(["jquery/foo"], ...);
RequireJS将寻求libs/jquery/src/foo.js
。当然,如果您想要将整个jQuery加载为jquery
,那么这将是有问题的。
如果您在依赖项中添加扩展程序,这将无法工作。您必须从模块名称中删除.js
,否则RequireJS会将该名称视为文字路径,并且不会通过paths
。