首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Node.js中path.normalize与path.resolve的区别

Node.js中path.normalize与path.resolve的区别
EN

Stack Overflow用户
提问于 2012-05-31 03:01:31
回答 2查看 53.6K关注 0票数 89

path.normalize(your_path)path.resolve(your_path)之间有什么区别(如果有)

我知道path.resolve(...)可以接受多个参数,但是只有一个参数的行为是否与调用path.normalize()相同

EDIT:如果它们的行为应该是一样的,我不明白为什么要公开path.normalize(...)函数,因为您可以简单地将路径传递到path.resolve(...)中,或者可能是为了文档目的。例如,他们在path.resolve(...)的文档中说

...得到的路径是规范化的,并且...

公开path.normalize(...)可以更容易地解释“规范化”是什么意思?我不知道。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-31 04:34:48

path.normalize去掉了路径中额外的...等。path.resolve将路径解析为绝对路径。示例(我当前的工作目录是/Users/mtilley/src/testing):

代码语言:javascript
复制
> path.normalize('../../src/../src/node')
'../../src/node'
> path.resolve('../../src/../src/node')
'/Users/mtilley/src/node'

换句话说,path.normalize是“我可以走的最短路径,它会把我带到与输入相同的地方”,而path.resolve是“如果我走这条路,我的目的地是什么”。

但是请注意,path.normalize()比更具上下文无关性。如果path.normalize()是context-_de(即,如果它考虑了当前的工作目录),则上面示例中的结果应该是../node,因为这是从/Users/mtilley/src/testing/Users/mtilley/src/node的最短路径。

具有讽刺意味的是,这意味着path.resolve()生成一个绝对路径(您可以在任何地方执行它,它会产生相同的结果),而path.normalize()生成一个绝对路径(您必须在您想要计算绝对结果的相对路径中执行它)。

票数 188
EN

Stack Overflow用户

发布于 2012-05-31 03:28:56

从文档中:

另一种方式是将其视为外壳中的一系列cd命令。

文档中指向path.resolvepath.normalize的链接。我通常不想只在答案中提供链接,但Node.js文档非常好用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10822574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档