我不确定这是否可行,我尝试过使用通配符 *
在 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
最佳答案
没有实际的模式匹配。但是,RequireJS 可以匹配路径的开头,将其替换为其他内容,因此您可以这样做:
paths: {
"jquery": "libs/jquery/src"
}
有了这个,那么如果你这样做:
require(["jquery/foo"], ...);
RequireJS 将寻找libs/jquery/src/foo.js
。当然,如果您碰巧想要将整个 jQuery 作为 jquery
加载,这将是有问题的。
如果您将扩展放入依赖项中,这将不起作用。您必须从模块名称中删除 .js
,否则 RequireJS 会将该名称视为文字路径,并且不会经过 path
。
关于javascript - 我如何告诉 RequireJS 在子目录中查找某些模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22674653/