vue-cli/node中path.join、path.resolve詳解
阿新 • • 發佈:2021-12-21
var path = require("path") //引入node的path模組
Node.js中,__dirname總是指向被執行js檔案的絕對路徑,所以當你在/d1/d2/myScript.js檔案中寫了__dirname,它的值就是/d1/d2
- __dirname: 總是返回被執行的 js 所在資料夾的絕對路徑
- __filename: 總是返回被執行的 js檔案的絕對路徑
一:path.join()
path.join()方法顧名思義用於連線路徑
path.join('/a', '/b', '/c') // /a/b/c
path.join('a', 'b', 'c') // a/b/c
path.join('/a', 'b','..' 'c') // /a/c ".."會向前跳一個目錄
二、path.resolve()將路徑或者路徑片段解析成絕對路徑
path.resolve('/foo/bar', './baz') // /foo/bar/baz path.resolve('/foo/bar', 'baz') // /foo/bar/baz path.resolve('/foo/bar', '/baz') // /baz path.resolve('/foo/bar', '../baz') // /foo/baz path.resolve('home','/foo/bar', '../baz') // /foo/baz path.resolve('home','./foo/bar', '../baz') // /home/foo/baz path.resolve('home','foo/bar', '../baz') // /home/foo/baz path.resolve('a','b','c')// /Users/siyuan/Desktop/example/node測試/a/b/c傳入路徑從右至左解析,遇到第一個絕對路徑解析(字元以 / 開頭)停止,不會拼接到前面的路徑(因為拼接到此已經是一個絕對路徑);
若以 ../ 開頭,拼接前面的路徑,且不含最後一節路徑;
若以 ./ 開頭 或者沒有符號 則拼接前面路徑;
需要注意的是:如果在處理完所有給定的 path 片段之後還未生成絕對路徑,則再加上當前工作目錄。