我明白了如何在 requireJS 中配置单个文件的后备,如下所示:
var skin = "christmas";
requirejs.config({
paths: {
languagesLocal : [
BaseUrl + skin + '/js/languagesLocal',
BaseUrl + "default" + '/js/languagesLocal'
]
}
});
因此,如果没有“圣诞节”皮肤,我将使用默认脚本。
现在 - 我的问题是 - 如何将完整的文件夹设为后备文件夹?因此,如果皮肤文件夹中不存在一个文件 - 它将在另一个文件夹中进行回退。 我需要检查每个文件是否存在,如果不存在,则应该有一个回退到默认文件夹
我尝试使用baseUrl
来做到这一点:
var skin = "christmas";
requirejs.config({
baseUrl: [
BaseUrl + skin + '/js/',
BaseUrl + 'default' + '/js/'
],
});
但它失败了,并将 baseUrl 呈现为与 2 个字符串组合的一个巨大 URL。
最佳答案
编辑:我误解了你的问题。我知道单个模块是可能的:
http://requirejs.org/docs/api.html#errbacks
使用这种技术,您可以创建一个模块来验证每个模块的存在:
loader.js
define(['a', 'b'], function(a, b) {},
function(err) {
if (err.requireModules) {
for(var i = 0; i < err.requireModules.length; i++) {
requirejs.undef(requireModules[i]);
requirejs.config({
baseUrl: BaseUrl + 'default' + '/js/'
});
require([requireModules[i]], function () {});
}
}
});
关于javascript - 如何在 requireJS 中回退到整个文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13973105/