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 ..) -若是路径最后有/,那么保留该/。