path.join 与 path.resolve 的区别
生活随笔
收集整理的這篇文章主要介紹了
path.join 与 path.resolve 的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
對比
舉一個簡單的例子
const path = require('path');console.log(__dirname); //D:\myProgram\test let myPath = path.join(__dirname,'/img/so'); //D:\myProgram\test\img\so
let myPath2 = path.join(__dirname,'./img/so'); //D:\myProgram\test\img\so
let myPath3 = path.resolve(__dirname,'/img/so'); //D:\img\so<br>
let myPath4 = path.resolve(__dirname,'./img/so'); //D:\myProgram\test\img\so
?
總結
path.join()方法可以連接任意多個路徑字符串。要連接的多個路徑可做為參數傳入。
path.join()方法在接邊路徑的同時也會對路徑進行規范化
?
path.resolve()方法可以將多個路徑解析為一個規范化的絕對路徑。其處理方式類似于對這些路徑逐一進行cd操作,與cd操作不同的是,這引起路徑可以是文件,并且可不必實際存在(resolve()方法不會利用底層的文件系統判斷路徑是否存在,而只是進行路徑字符串操作)。
?
resolve的詳解可以參考:
https://www.cnblogs.com/zytt/p/9038598.html
?
?
?
?
?
?
?
?
?
1. 對于以/開始的路徑片段,path.join只是簡單的將該路徑片段進行拼接,而path.resolve將以/開始的路徑片段作為根目錄,在此之前的路徑將會被丟棄,就像是在terminal中使用cd命令一樣。
path.join('/a', '/b') // 'a/b' path.resolve('/a', '/b') // '/b'?
2. path.resolve總是返回一個以相對于當前的工作目錄(working directory)的絕對路徑。
path.join('./a', './b') // 'a/b' path.resolve('./a', './b') // '/Users/username/Projects/webpack-demo/a/b'轉載于:https://www.cnblogs.com/amcy/p/10268602.html
總結
以上是生活随笔為你收集整理的path.join 与 path.resolve 的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux中的mysql.redis
- 下一篇: 2019-1-15 课后作业