我创建了一个npm包。在函数中,我需要知道whice文件需要我的包。我该怎么办?
样品: 这是我的package.json
{
name: "path-judge",
main: "lib/index.js"
}

exports.doSomething = function(){
//how can I get the file path that require this package.
//....
}

如果文件test.js
需要path-judge
,请执行以下操作:
var judge = require("path-judge");
judge.doSomething();

在index.js中如何获取test.js文件路径?
test.js不是主要功能,其他文件需要它。
例如:
node other.js
other.js:
test = require '../../test.js'
//...
console.log('....')

答案 0 :(得分:1)
您可以查看module.parent
。如果该属性存在,则表示该模块正在通过require()
而不是node mymodule.js
直接加载。
在此对象中是filename
属性。因此,您可以轻松地在此值上使用path.dirname()
来提取目录部分,以获取执行require()
的脚本的路径。例如:
var path = require('path');
if (module.parent) {
console.log(path.dirname(module.parent.filename));
}