【发布时间】:2014-10-14 09:41:44
【问题描述】:
假设我有一个 node.js 模块
module.exports = function () {
console.log(__filename);
}
在主文件中我称之为
var x = require('path/to/module');
x();
这给了我模块文件的路径。例如,如果我将模块存储在~/project-root/lib/mod.js 并且main.js 文件位于~/project-root/main.js,则该设置会为我提供输出:
~/project-root/lib/mod.js
我想在模块中使用一些东西来代替__filename,它可以让我找到调用它的文件的位置。 (例如,在本例中,输出将改为 ~/project-root/main.js)。
模块可以位于任何地方。因此使用path 仅针对此示例进行调整在其他情况下会失败(例如,如果模块存储在~/project-root/node_modules/ 或全局node.js 模块目录中。
我觉得这是一件相当微不足道的事情,我忽略了一些事情。但我没有从谷歌在一小时的搜索中找到任何解决方案。也许我使用了错误的关键字!
【问题讨论】: