获取该模块正在运行的__dirname?

有没有一种方式,我的模块可以得到它正在运行一个函数文件的__dirname ? 就像是:

module.js

 module.exports.dir = function(){ console.log(__dirname); } 

file.js

 var module = require("./module.js"); module.dir(); // /home/user/dir/file.js instead of /home/user/dir/module.js 

你可以得到主模块(导入当前模块的模块)名称,使用path模块可以得到它的目录

 const {dirname} = require("path"); module.exports.dir = function () { console.log(dirname(require.main.filename)) } 

这里如果模块自己运行require.main.filename将等于它自己,但是如果它的导入会给你它的import商的名字