gpt4 book ai didi

node.js - 捆绑 node.js 模块

转载 作者:搜寻专家 更新时间:2023-11-01 00:33:38 26 4
gpt4 key购买 nike

我想将这些模块导入到我的项目中:

var ModuleA = require('./ModuleA.js'),
ModuleB = require('./ModuleB.js'),
ModuleC = require('./ModuleC.js'),
ModuleD = require('./ModuleD.js');

现在,这很好用,但是我想将它们捆绑在一起,而不是调用一个模块来处理加载所有这些“子”模块,如下所示:

// app.js ----------------------------

var Module = require('./Module.js');


// Module.js -------------------------

var ModuleA = require('./ModuleA.js'),
ModuleB = require('./ModuleB.js'),
ModuleC = require('./ModuleC.js'),
ModuleD = require('./ModuleD.js');


// ModuleA.js ------------------------

exports.method = function() { return true }

现在,我希望能够访问“子包”导出,如下所示:

ModuleA.method();

这可能吗?

最佳答案

试试这个:

// ModuleA.js
module.exports.method = function () { return true; }

// Module.js
module.exports.A = require('./ModuleA');
module.exports.B = require('./ModuleB');

// app.js
var myModule = require('./Module');
myModule.A.method();

如果您希望直接在myModule 上调用ModuleA 的方法,您需要将它们重新导出到Modules.js 文件中,例如这个:

// ModuleA.js
module.exports.method = function () { return true; }

// Module.js
module.exports.methodA = require('./ModuleA').method;
module.exports.methodB = require('./ModuleB').method;

// app.js
var myModule = require('./Module');
myModule.methodA();

这是否解决了您的问题?

或者您可以使用 node-require-all这允许您一次导入多个文件并使用单个对象导出它们。一个例子可能是:

var modules = require('require-all')({
dirname : __dirname + '/modules',
filter : /(Module.+)\.js$/,
excludeDirs: /^\.(git|svn)$/
});

之后,您有一个对象modules,其中包含单个模块作为属性:

modules.ModuleA.method();

(我没有测试过这段代码,但基本上它应该是这样工作的。)

关于node.js - 捆绑 node.js 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15638052/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com