javascript - 解析相对于另一个路径而不是当前工作目录的相对路径
问题描述
我有一个如下所示的 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()
应该持有解决方案,但我找不到让它发挥作用的方法。也许将多个path.relative()
s 链接在一起可以工作,但我现在无法思考它是如何工作的。
解决方案
推荐阅读
- matlab - 减少二维段的有效Matlab方法?
- swift - 使用 swiftUI 继承 NSObjectProtocol
- ubuntu - 如何授予makefile复制文件夹的权限?
- .net - 在多个平台的解决方案中构建 Visual Studio C++ 项目
- java - java - 如何在Arraylist java中按ID号搜索和显示对象?
- javascript - 如何在 React JS 中将 Image-Url 分享到 Facebook、Twitter 和 Instagram
- python - 使用 Python 检查启用的 Windows 功能
- javascript - ReferenceError:未使用 useMedia() hook + next.js 定义窗口
- typescript - Eslint 不使用 TypeScript 语法
- sql - 如何在 BigQuery 中将 12/01/2019 12:00:00 am 转换为 DATETIME