__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