path.normalize(your_path)
和path.resolve(your_path)
之间有什么区别(如果有)
我知道path.resolve(...)
可以接受多个参数,但是只有一个参数的行为是否与调用path.normalize()
相同
EDIT:如果它们的行为应该是一样的,我不明白为什么要公开path.normalize(...)
函数,因为您可以简单地将路径传递到path.resolve(...)
中,或者可能是为了文档目的。例如,他们在path.resolve(...)
的文档中说
...得到的路径是规范化的,并且...
公开path.normalize(...)
可以更容易地解释“规范化”是什么意思?我不知道。
发布于 2012-05-31 04:34:48
path.normalize
去掉了路径中额外的.
、..
等。path.resolve
将路径解析为绝对路径。示例(我当前的工作目录是/Users/mtilley/src/testing
):
> 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()
生成一个绝对路径(您必须在您想要计算绝对结果的相对路径中执行它)。
发布于 2012-05-31 03:28:56
https://stackoverflow.com/questions/10822574
复制相似问题