获取 __dirname 模块在 运行 中?

Get __dirname that module is running in?

有没有办法让我的模块获取 运行 文件的 __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

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

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

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