path.resolve、__dirname、path.join()

__dirname 總是指向被執行 js 文件的絕對路徑

比如你在 /a1/a2/test.js文件裏寫代碼,那麼此時__dirname就是/a1/a2

__filename指定的是絕對文件路徑  

path.join()方法是將多個參數字符串合併成一個路徑字符串

如果當前文件的路徑是D:/test/1,

path.join(__dirname,'a','b') 拼接出來就是D:/test/1/a/b

path.join(__dirname,'/a','/b','..') 拼接出來的結果是:D:/test/1/a 其中路徑開頭的/不會影響拼接,..代表父級

path.join(__dirname,'a',{},'b') 會拋出錯誤:Path must be a string 因爲字符串不合法

path.resolve([from...],to) 方法 以程序爲根目錄,作爲起點(如果有/以/代表絕對路徑根目錄,以/爲起點),普通字符串代表子目錄,從右往左開始根據參數解析出一個絕對路徑

from 源路徑
to 將被解析到絕對路徑的字符串

如果當前文件的路徑是D:/test/1,

path.resolve() 拼接出來就是應用程序啓動文件的目錄(當前執行文件絕對路徑) D:\test\1

path.resolve('a','/c') 拼接出來就是D:\c

path.resolve('/foo','/bar','baz') 拼接出來就是D:\bar\baz

path.resolve('/foo/bar', './baz') 拼接出來就是 D:\foo\bar\baz

因爲/斜槓代表根目錄,所以一般拼接時需要小心使用/斜槓

path.resolve(__dirname,'img/so') 拼接出來就是D:\test\1\img\so 就是將文件路徑拼接,並不管這個路徑是否真實存在

path.resolve('www', 'imgs/png/', '../abc/image.jpg') 拼接出來就是D:\test\1\www\imgs\abc\image.jpg

因爲開始的字符串不是以/開頭的,所以這是用當前應用程序啓動文件絕對路徑與後面所有字符串拼接的,..代表上一級目錄

原文鏈接:https://blog.csdn.net/m0_62012366/article/details/122622884

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章