path.join()和path.resolve()的區別


現在寫代碼的時候有時候使用path.join(__dirname,'dist')有時候用path.resolve(__dirname,'dist'),都是能拼接出來一個絕對路徑,但是具體有什么區別呢?

一、path.join()方法

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

  console.log(path.join(__dirname,'a','b'));   假如當前文件的路徑是E:/node/1,那么拼接出來就是E:/node/1/a/b。

  console.log(path.join(__dirname,'/a','/b','..'));  路徑開頭的/不會影響拼接,..代表上一級文件,拼接出來的結果是:E:/node/1/a
  console.log(path.join(__dirname,'a',{},'b'));   而且path.join()還會幫我們做路徑字符串的校驗,當字符串不合法時,會拋出錯誤:Path must be a string.
二、path.resolve()方法
  path.resolve()方法是以程序為根目錄,作為起點, 根據參數解析出一個絕對路徑
  以應用程序為根目錄
  普通字符串代表子目錄
  /代表絕對路徑根目錄
  
  console.log(path.resolve());   得到應用程序啟動文件的目錄(得到當前執行文件絕對路徑)   E:\zf\webpack\1\src
  console.log(path.resolve('a','/c'));   E:/c  ,因為/斜杠代表根目錄,所以得到的就是E:/c
  所以我們一般拼接的時候需要小心點使用/斜杠
  console.log(path.resolve(__dirname,'img/so'));  E:\zf\webpack\1\src\img\so   這個就是將文件路徑拼接,並不管這個路徑是否真實存在。
  console.log(path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif'))    E:\zf\webpack\1\src\wwwroot\static_files\gif\image.gif
  這個是用當前應用程序啟動文件絕對路徑與后面的所有字符串拼接,因為最開始的字符串不是以/開頭的。
  ..也是代表上一級目錄。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM