npm 依赖项是否可以从其父包中获取模块

Can a npm dependency require a module from its parent package

我正在构建一个服务器应用程序作为 "core" 框架和(可能)多个专业,从 "spec_a" 开始。

我希望 "core" 成为一个 npm 包,"spec_a" 成为一个需要 "core".

的 npm 包

虽然我可以要求 spec_a 的模块并在函数调用中将它们传递给核心,但我更喜欢核心读取配置文件并尝试从中要求模块(在配置文件中指定)它是父包。 (核心不需要知道其父包的名称,因为它与每个专业化都不同。)

我要找的是一个require_from_parent(module_name_from_config)电话。

有没有办法制作这样的东西?

我正在考虑使用 require('../'+module_name_from_config),但这很脆弱,可能会在最新的 npm 上崩溃。

没有明确的 "requireFromParent" 调用。每当你调用 require 时,它首先会在它自己的 node_modules 文件夹中查找,如果没有找到该模块,它将向上遍历目录树并检查它的父级是否有该模块,这应该适用于你的目的。

我想我在 a nodebb blog 上找到了答案。

var Topics = module.parent.require('./topics'),
    User = module.parent.require('./user'),
    Notifications = module.parent.require('./notifications');