最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

path.join vs path.resolve with

运维笔记admin48浏览0评论

path.join vs path.resolve with

path.join vs path.resolve with

使用both path.joinpath.resolve__dirname解析Node.js中的绝对路径时,是否有区别?

像这样使用时,其中一个应该是首选(绝对路径分辨率是用例的90%)?

const absolutePath = path.join(__dirname, some, dir);

vs。

const absolutePath = path.resolve(__dirname, some, dir);

两种方法都将路径归一化。

这不是this question的副本,因为接受的答案是错误的。

回答如下:

是的,功能之间存在差异,但是在这种情况下,使用它们的方式将导致相同的结果。

path.join通过将两个路径合并在一起来返回规范化路径。它可以返回绝对路径,但不一定总是如此。

例如:

path.join('app/libs/oauth', '/../ssl')

解析为app/libs/ssl

[path.resolve,另一方面,它将解析为绝对路径。

例如,当您运行时:

path.resolve('bar', '/foo');

返回的路径将是/foo,因为这是可以构造的第一个绝对路径。

但是,如果您运行:

path.resolve('/bar/bae', '/foo', 'test');

返回的路径将再次为/foo/test,因为这是可以从右到左形成的第一个绝对路径。

如果不提供指定根目录的路径,则给resolve函数的路径将附加到当前工作目录。因此,如果您的工作目录为/home/mark/project/

path.resolve('test', 'directory', '../back');

解析为

/home/mark/project/test/back

使用__dirname是包含源文件的目录的绝对路径。使用path.resolvepath.join时,如果在__dirname之后给出相同的路径,它们将返回相同的结果。在这种情况下,这实际上只是一个偏好问题。

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论