舉一個簡單的例子html
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()方法能夠鏈接任意多個路徑字符串。要鏈接的多個路徑可作爲參數傳入。webpack
path.join()方法在接邊路徑的同時也會對路徑進行規範化web
path.resolve()方法能夠將多個路徑解析爲一個規範化的絕對路徑。其處理方式相似於對這些路徑逐一進行cd操做,與cd操做不一樣的是,這引發路徑能夠是文件,而且可沒必要實際存在(resolve()方法不會利用底層的文件系統判斷路徑是否存在,而只是進行路徑字符串操做)。ui
resolve的詳解能夠參考:spa
https://www.cnblogs.com/zytt/p/9038598.htmlcode
1. 對於以/開始的路徑片斷,path.join只是簡單的將該路徑片斷進行拼接,而path.resolve將以/開始的路徑片斷做爲根目錄,在此以前的路徑將會被丟棄,就像是在terminal中使用cd命令同樣。htm
path.join('/a', '/b') // 'a/b' path.resolve('/a', '/b') // '/b'
2. path.resolve老是返回一個以相對於當前的工做目錄(working directory)的絕對路徑。blog
path.join('./a', './b') // 'a/b' path.resolve('./a', './b') // '/Users/username/Projects/webpack-demo/a/b'