Javascript 如何制作包含多个文件的requirejs模块
我想知道如何制作一个包含多个文件的requirejs模块。 e、 我需要一个文件,然后以某种方式获得多个文件。 我知道我可以做到:Javascript 如何制作包含多个文件的requirejs模块,javascript,requirejs,amd,Javascript,Requirejs,Amd,我想知道如何制作一个包含多个文件的requirejs模块。 e、 我需要一个文件,然后以某种方式获得多个文件。 我知道我可以做到: define([all the other files], function () { var mod = {}, files = [all the other files]; arguments.forEach(function (i) { mod.[files[i]] = i; }); return mod; });
define([all the other files], function () {
var mod = {},
files = [all the other files];
arguments.forEach(function (i) {
mod.[files[i]] = i;
});
return mod;
});
但是我想知道是否有更好的方法?您需要一个文件的动态列表(.txt、.tpl、.htm、.json),以避免更改JS源代码以添加更多文件 我不知道是否有办法做到这一点,但您必须注意下载所有这些文件所需的时间。我建议您使用所有要下载的文件创建一个json文件,并使用ajax迭代这些文件数组以获得它们 如果您试图获取目录中的所有模块,则需要创建一个js文件:
.js
,该文件封装了一个require([all files],function())代码>例如
我相信这是解决这个问题的唯一方法。首先,像这样编写模块
define(function(){
return {
'mod-a' : require('modules/mod-a'),
'mod-b' : require('modules/mod-b'),
'mod-c' : require('modules/mod-c')
}
})
然后使用r.js对上述js进行优化,吹出一个(r.js会将所有模块文件合并成一个),或者直接这样写:
define('modules/mod-a', [], function(){});
define('modules/mod-b', [], function(){});
define('modules/mod-c', [], function(){});
define('mod-all', ['modules/mod-a','modules/mod-b','modules/mod-c'], function(){
return {
'mod-a' : require('modules/mod-a'),
'mod-b' : require('modules/mod-b'),
'mod-c' : require('modules/mod-c')
}
})
现在,模块'mod all'是您想要的。看看这个-这不是我想要的,它是完全相反的,我想要一个模块,多个文件,模块名称是一个文件,多个模块。AFAIK,参数
没有forEach
方法,但我理解伪代码。你的建议似乎是最简单的方法。