减少很多 require() 函数

reduce a lot of require() function

我有很多 CommonJS 模块,我需要将它们全部添加到数组中。因此,我有一个巨大的重复代码:

//Container module
var module1 = require('module1'),
    module2 = require('module2'),
 ...
    module25 = require('module25')

var container = [];
container.push(module1);
container.push(module2);
...
container.push(module25);

module.exports = container;

是否可以减少此代码?我不想让它们全球化。我只看到解决方案,它在每个模块中注入 container,但我不想让我的模块知道 container.

如果我对您的问题的理解正确,您希望导出模块数组并访问该数组,即 require,在其他地方。如果这是正确的,你可以这样做:

// requires-file
module.exports = [
    require('module1'),
    require('module2'),
    // ...
];

或者更函数式的编程方法,这对我更有吸引力,但人们喜欢不同的风格:

module.exports = ['module1', 'module2', /*...*/].map(function(m) {return require(m);});

而你需要文件的地方,你可以使用:

// other-file
var container = require('/requires-file');