Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何制作包含多个文件的requirejs模块_Javascript_Requirejs_Amd - Fatal编程技术网

Javascript 如何制作包含多个文件的requirejs模块

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; });

我想知道如何制作一个包含多个文件的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;

});

但是我想知道是否有更好的方法?

您需要一个文件的动态列表(.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
方法,但我理解伪代码。你的建议似乎是最简单的方法。