获取模块运行的__dirname?

时间:2016-10-06 23:07:50

标签: node.js node-modules

我的模块是否可以获取运行函数的文件的__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

1 个答案:

答案 0 :(得分:1)

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

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

这里如果模块运行在自己的require.main.filename将等于它自己,但如果它导入它将给你它的导入器的名称