让我们想象你想要构建一个包含不同方法的文件。例如:文件bundler.js
需要方法a()
,b()
,c()
。但是这些方法非常复杂并且占用了大量代码,因此将这些方法分离到自己的文件中会很不错。所以你有文件a.js
,b.js
和c.js
。文件a.js
看起来像:
module.exports = {
a: data => console.log(data)
}
文件b和c看起来完全一样,现在你想在bundle.js
文件中使用它们。
我的问题:它们都与Bundle()
提供的相同实例 - > bundle.js
相关,但是当我在bundle.js
中需要它们时,它们都将具有相同的变量名称以遵循逻辑声明。
let bundle = require('./a.js');
let bundle = require('./b.js');
let bundle = require('./c.js');
bundle.a();
bundle.b();
bundle.c();
但是,当我理解nodejs(以及其他一些编程语言)时,这是行不通的。我需要一个单独的图层来捆绑这些方法并再次导出它。所以我需要一次这个图层,并且可以访问所有方法。但我不知道那层是怎么样的。
有人能帮我吗?
非常感谢您的建议。
好的,有几件事需要注意,从这里开始。 1)你的require
陈述没有正确完成。每次需要时,变量bundle
基本上都会被覆盖。你可以这样做:
let bundleA = require('./a.js');
let bundleB = require('./b.js');
let bundleC = require('./c.js');
这样,您的bundle
变量每次都不会被覆盖。现在,关于你实际问的是什么。你想要创建一个文件,在这种情况下称为bundle.js
,看起来像这样:
// your bundle.js
const a = require('./a.js')
const b = require('./b.js')
const c = require('./c.js')
exports.bundledA = function() {
return a;
}
exports.bundledB = function() {
return b;
}
exports.bundledC = function() {
return c;
}
现在你有一个bundle.js
,你可以包括。所以下一步就是使用它,如下所示:
// Some file
const bundle = require('./bundle')
// Using method A
bundle.bundledA()
希望所有这些都是有道理的。如果您有任何问题,请随时在评论中说出来,我会尽力解释。这里还有一个链接用于导出和创建您应该阅读的模块:
https://www.sitepoint.com/understanding-module-exports-exports-node-js/
快乐的编码:-)