我有一个node.js模块,如下所示:
module.exports = function()
{
// linked dependencies
this.dependency1 = 'dependency1/dependency1.exe';
this.dependency2 = 'dependency2/dependency2.exe';
this.dependency3 = 'dependency3/dependency3.exe';
}
我希望开发人员能够轻松地编辑依赖项的位置
相对于模块文件本身
. 但是,在使用模块时,当前工作目录
process.cwd()
通常与模块目录不同,因此这些路径解析不正确。
path.resolve()
似乎只能相对于当前工作目录工作,并且没有任何允许自定义引用点/路径的参数。
我已经能够用以下方法解决这些问题,但我发现这很难看而且很麻烦,而且应该比这容易些:
this.ResolvePath = function(p)
{
var cwd = process.cwd();
process.chdir(path.dirname(module.filename));
var resolvedPath = path.resolve(p);
process.chdir(cwd);
return resolvedPath;
}
有更干净的方法吗?我觉得
path.relative()
应该有解决办法,但我找不到办法让它发挥作用。可能是多个链接在一起
路径相对论()
S可以工作,但我现在还不能全神贯注于它的工作方式。