Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js:如何透明地要求和导出子模块_Javascript_Node.js - Fatal编程技术网

Javascript Node.js:如何透明地要求和导出子模块

Javascript Node.js:如何透明地要求和导出子模块,javascript,node.js,Javascript,Node.js,我想在一个名为module的存储库中收集很多依赖项,所以我只需要对其他存储库有一个依赖项。是否可能: 在模块存储库中index.js以收集子模块 const submoduleA = require('submoduleA') const submoduleB = require('submoduleB') exports.submoduleA = submoduleA exports.submoduleB = submoduleB index.js在另一个模块/库中,我需要所有子模块,因此

我想在一个名为
module
的存储库中收集很多依赖项,所以我只需要对其他存储库有一个依赖项。是否可能:

模块
存储库中index.js以收集子模块

const submoduleA = require('submoduleA')
const submoduleB = require('submoduleB')

exports.submoduleA = submoduleA
exports.submoduleB = submoduleB
index.js在
另一个模块/库
中,我需要所有子模块,因此我需要
模块

const { submoduleA, submoduleB } = require('module')
这有可能吗?我知道这不是一个巨大的好处,但如果能解释一下所有子模块是如何可用的,那就太好了


我希望尽可能透明的是
模块
存储库。仅要求它获取所有其他依赖项,但不妨碍这些依赖项的正常语法。

此示例创建了一个
fruit
模块,该模块同时导出
apple
模块和
banana
模块

apple.js 香蕉酱 水果.js app.js app.js(备用)
var module=require('module'),对于调用函数use module.function_NAME(),有什么不起作用?“不起作用”不是一个非常有用的问题描述。它没有给我们提供调试信息,没有错误描述,没有任何需要继续的内容。仅供参考,此机制将不适用于较新的ESM
import
export
,因为您无法以编程方式计算导出(导出必须静态声明)。请尝试此
module.exports={submoduleA,submoduleB}
而不是
exports.submoduleA=submoduleA;exports.submoduleB=submoduleB
。不清楚(双关语)你所说的“透明”是什么意思。你能具体说明一下你要求什么是透明的吗?谢谢,@Wyck!我将进一步尝试这个方法。我需要avajs('ava').default,但忘记了.default部分。不确定这是否是问题所在,但导出和要求是否与fruit.js中的一样。谢谢你的帮助,@Wyck!
function eatApple() {
  return 'Yummy apple!';
}

module.exports = { eatApple };
function eatBanana() {
  return 'Yummy banana!';
}

module.exports = { eatBanana };
module.exports = {
  apple: require('./apple'),
  banana: require('./banana')
};
const fruit = require('./fruit');
console.log(fruit.apple.eatApple(), fruit.banana.eatBanana());
const { apple, banana } = require('./fruit');
console.log(apple.eatApple(), banana.eatBanana());