【问题标题】:reduce a lot of require() function减少很多 require() 函数
【发布时间】:2015-06-14 11:18:27
【问题描述】:

我有很多 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

【问题讨论】:

    标签: javascript browserify commonjs


    【解决方案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');
    

    【讨论】:

    • 谢谢,但这并不能解决我的问题。无论如何,我必须在requires-file 中写require 25 次。
    • 嗯,是的,你不能改变它,但它仍然少于 25 行要求和 25 行 .push。或者您可以在 node_modules 上使用 fs.readdir 并将每个已安装的模块添加到数组中,但是添加太多模块和导入顺序会出现问题。你能解释一下你需要 25 个模块并且每个文件都需要它们的用例吗?
    猜你喜欢
    • 2018-12-01
    • 2014-08-04
    • 1970-01-01
    • 2022-01-02
    • 2020-05-13
    • 2015-04-01
    • 2020-10-05
    • 1970-01-01
    • 2016-11-02
    相关资源
    最近更新 更多