如何获取需要我的npm包的文件目录

时间:2015-01-31 07:21:07

标签: node.js

我创建了一个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('....')




1 个答案:

答案 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));
}