一、緣起: 在webpack打包的配置文件總是遇到‘__dirname’(例如下麵這個),作為一個從事前端多年的‘老白’一直對它都是用不著,就不管的態度,但出來混總是要還的>_<...所以做了這個小總結 Node.js path 模塊提供了一些用於處理文件與目錄的路徑的實用工具。 它可以使用以下方式 ...
一、緣起:
在webpack打包的配置文件總是遇到‘__dirname’(例如下麵這個),作為一個從事前端多年的‘老白’一直對它都是用不著,就不管的態度,但出來混總是要還的>_<...所以做了這個小總結
Node.js path
模塊提供了一些用於處理文件與目錄的路徑的實用工具。 它可以使用以下方式訪問:
二、探究
路徑分為:相對路徑和絕對路徑
1、相對路徑有./
或者 ../兩個(可通過
path.resolve('./')
來轉換為絕對路徑)
2、絕對路徑有__dirname、
__filename、
process.cwd()三個
測試:新建簡單文件path如下(不同環境有所不同,以下是在window環境測試所得)
三、從上面的列印信息可得出的總結:
(1)__dirname: 總是返回被執行的 js 所在文件夾的絕對路徑
(2)__filename: 總是返回被執行的 js 的絕對路徑
(3)process.cwd(): 總是返回運行 node 命令時所在的文件夾的路徑
(4)./跟 process.cwd() 相同(這裡必須要註意特殊情況require)
四、關於require()的路徑特殊說明
(1)在require()中使用‘./’和‘../’,是跟使用 __dirname
的效果相同,不會因為啟動腳本的目錄不一樣而改變;
(2)在其他情況下跟 process.cwd()
效果相同,是相對於啟動腳本所在目錄的路徑。
結論:只有在 require()
時才使用相對路徑(./, ../) 的寫法,其他地方一律使用絕對路徑。