获取需要当前模块的模块的名称

有没有办法在当前模块中获取require当前模块的调用者模块的名称?

我看到有一个module.parent.filename但是这只返回需要当前模块的第一个模块。

core.js

 console.log('Caller module: ' + module.parent.filename) 

module1.js

 require('core') 

来电显示模块:[…] / module1.js

module2.js

 require('core') 

来电显示模块:[…] / module1.js

我问这是因为没有人特别要求上述function(或者至less这是我的结论),并且当require发生时,是否有可能或不需要获取requirer的名称是不可能的

节点中只需要一次模块。 另一个调用只是一个指向已经加载的模块的指针。 这样做的唯一方法是在模块中导出一个函数,并在加载时调用该函数。 这看起来像这样:

core.js

 module.exports = function (higherModule) { console.log('Caller module: ' + higherModule) } 

module1.js

 require('./core')('module1') 

module2.js

 require('./core')('module2')