NodeJS中如何让父模块导入子模块的子模块

How to let parent module to import a child module of the child module in NodeJS

Module A
│
└─ Module B (devDependency in Module A's package.json)
   │
   └─ Module C (dependency in Module B's package.json)

模块B是我正在开发的。但我知道模块 C 将在模块 A 中以 require('Module C') 调用。我遇到的错误是 Cannot find module 'Module C'.

我目前的解决方案是丑陋的:

在模块 B 的 index.js 中

exports.Module_C = require('Module_C) || require(path.resolve(__dirname, 'node_modules/Module_C/index');

在模块 A 中

require('Module_B').Module_C

我希望有更好的方法。

模块不被继承。

如果您在系统中的两个不同位置需要相同的模块,只需在两个不同的位置需要它即可。

// A.js
var C = require("./modules/c");
var B = require("./modules/b");


// B.js
var C = require("./modules/c");
module.exports = { };

// C.js
module.exports = { };

如果您需要导入模块的子部分,请导航到您需要的文件(或文件的根目录)。

// app.js
var add = require("./lib/helpers/math/add");

如果您试图在一个模块内提供多个模块的功能,那么您正在寻找的是一项服务,您将为其创建一个 API,以抽象出您想要的内容最终用户能够从您需要触摸的所有地方做到这一点。

即使该服务/库基本上只是将其他接口扩展到它自己的接口上。​​