我正在构建一个服务器应用程序作为"核心"框架和(可能)多个专业化,从" spec_a"。
开始我想"核心"成为一个npm包," spec_a"成为一个npm包,需要"核心"。
虽然我可以要求spec_a的模块并将它们传递给函数调用中的核心,但我更喜欢核心来读取配置文件,并尝试从中获取模块(在配置文件中指定)'的父包。 (核心不应该知道其父包的名称,因为它将与每个专业化不同。)
我正在寻找的是require_from_parent(module_name_from_config)
电话。
有没有办法制作这样的东西?
我正在考虑使用require('../'+module_name_from_config)
,但这很脆弱,可能会在最近的npm打破。
答案 0 :(得分:3)
没有明确的“requireFromParent”调用。无论何时调用require
,它都会首先查看自己的node_modules文件夹,如果找不到该模块,它将遍历目录树并检查其父项是否具有该模块,该模块应该适用于您的目的。 / p>
答案 1 :(得分:2)
我想我在a nodebb blog上找到了答案。
var Topics = module.parent.require('./topics'),
User = module.parent.require('./user'),
Notifications = module.parent.require('./notifications');