我有很多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
。
答案 0 :(得分:1)
如果我正确理解您的问题,您希望导出一个模块数组并访问该数组,即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');