node.js - 获取模块正在运行的__dirname?

标签 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

最佳答案

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

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

这里,如果模块单独运行,则 require.main.filename 将等于其自身,但是如果导入它,它将为您提供其导入程序的名称

关于node.js - 获取模块正在运行的__dirname?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39906963/

相关文章:

node.js - socket.io nodejs 客户端显示 "GET http://localhost:8888/socket.io/1/?t=1342788870007 404 (Not Found) "

node.js - 在 mongoose 中,model.save 是增量的原子还是我应该始终使用 $inc?

css - 从 meteor 1.4 中的 node_modules 导入 css 并使用react

javascript - 如何在 webpack 中使用别名来覆盖 node_modules 中已经存在的依赖项?

javascript - 模块构建失败(来自./node_modules/postcss-loader/src/index.js): SyntaxError (2:14) Unknown word

node.js - `Cannot find module` 用于我自己的 TypeScript 模块

node.js - 如何在 Nginx Docker 镜像上使用 Traefik PathPrefix?

javascript - Javascript中promise和@@iterator的问题

javascript - 将带有 for 循环和递归的回调转换为 Promise

javascript - 如何从 Node js 与 shell 脚本通信