有没有办法在当前模块中获取require
当前模块的调用者模块的名称?
我看到有一个module.parent.filename
,但这只返回需要当前模块的第一个模块。
console.log('Caller module: ' + module.parent.filename)
require('core')
来电模块:[...] / module1.js
require('core')
来电模块:[...] / module1.js
我问这是因为没有其他人专门询问上述功能(或者至少是我的结论)并且我不清楚是否可以在内获取发生require
时 requirer 的名称。
答案 0 :(得分:2)
模块在节点中只需要一次。另一个调用只是指向已加载模块的指针。执行此操作的唯一方法是在模块中导出函数并在加载时调用该函数。这看起来像这样:
<强> core.js 强>
module.exports = function (higherModule) {
console.log('Caller module: ' + higherModule)
}
<强> module1.js 强>
require('./core')('module1')
<强> module2.js 强>
require('./core')('module2')