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 ..) -若是路徑最後有/,那麼保留該/。