Node.js:如何透明地要求和导出子模块 apple.js香蕉.jsfruit.jsapp.jsapp.js替代

问题描述

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

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

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

exports.submoduleA = submoduleA
exports.submoduleB = submoduleB

index.js in another module/library 我需要所有子模块,所以我需要 module

const { submoduleA,submoduleB } = require('module')

这有可能吗?我知道这不是一个巨大的好处,但会很好地解释所有子模块是如何可用的。

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

解决方法

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

apple.js

function eatApple() {
  return 'Yummy apple!';
}

module.exports = { eatApple };

香蕉.js

function eatBanana() {
  return 'Yummy banana!';
}

module.exports = { eatBanana };

fruit.js

module.exports = {
  apple: require('./apple'),banana: require('./banana')
};

app.js

const fruit = require('./fruit');
console.log(fruit.apple.eatApple(),fruit.banana.eatBanana());

app.js(替代)

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