node中 path.resolve 和path.join的区别

path.resolve('a','b','c')
返回a/b/c
path.resolve理论上老是之前一个路径做为基础路径,而后匹配当前路径,当前路径会有三种状况根目录(/),当前目录(./),上级目录(../)在进行匹配的时候,path.resolve会针对不一样状况去处理不一样的路径
好比
path.resolve('a/b/c','./d')
返回 a/b/c/d

path.resolve('a/b/c','../d')
返回 a/b/d

path.resolve('a/b/c','/d')
返回 d.
path.join
    上面的代码把path.resolve换成path.join发现结果同样,原本觉得没什么区别,后来发现path.join原本是把path.join里面的每个path节点先用字符串加起来,而后再执行path.normalize,
path.normalize:
    path.normalize是对路径的纠正处理,它主要作几件事情:
        -若是路径为空,返回.,至关于当前的工做路径。
        -将对路径中重复的路径分隔符(好比linux下的/)合并为一个。
        -对路径中的. 、..进行处理。(相似于shell里的cd ..)
        -若是路径最后有/,那么保留该/。
相关文章
相关标签/搜索