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 ..)
        -若是路徑最後有/,那麼保留該/。
相關文章
相關標籤/搜索