path.join 与 path.resolve 的区别
?
對(duì)比
舉一個(gè)簡單的例子
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
?
總結(jié)
path.join()方法可以連接任意多個(gè)路徑字符串。要連接的多個(gè)路徑可做為參數(shù)傳入。
path.join()方法在接邊路徑的同時(shí)也會(huì)對(duì)路徑進(jìn)行規(guī)范化
?
path.resolve()方法可以將多個(gè)路徑解析為一個(gè)規(guī)范化的絕對(duì)路徑。其處理方式類似于對(duì)這些路徑逐一進(jìn)行cd操作,與cd操作不同的是,這引起路徑可以是文件,并且可不必實(shí)際存在(resolve()方法不會(huì)利用底層的文件系統(tǒng)判斷路徑是否存在,而只是進(jìn)行路徑字符串操作)。
?
resolve的詳解可以參考:
https://www.cnblogs.com/zytt/p/9038598.html
?
?
?
?
?
?
?
?
?
1. 對(duì)于以/開始的路徑片段,path.join只是簡單的將該路徑片段進(jìn)行拼接,而path.resolve將以/開始的路徑片段作為根目錄,在此之前的路徑將會(huì)被丟棄,就像是在terminal中使用cd命令一樣。
path.join('/a', '/b') // 'a/b' path.resolve('/a', '/b') // '/b'?
2. path.resolve總是返回一個(gè)以相對(duì)于當(dāng)前的工作目錄(working directory)的絕對(duì)路徑。
path.join('./a', './b') // 'a/b' path.resolve('./a', './b') // '/Users/username/Projects/webpack-demo/a/b'轉(zhuǎn)載于:https://www.cnblogs.com/amcy/p/10268602.html
總結(jié)
以上是生活随笔為你收集整理的path.join 与 path.resolve 的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux中的mysql.redis
- 下一篇: 2019-1-15 课后作业