介紹nodejs中的path模塊的幾個方法
webpack中常用的:
var path = require(‘path‘)
是nodejs中的path模塊,介紹一下webpack中常用的幾個path模塊的方法:
應用node環境的時候,這個path模塊的方法經常被用到,處理路徑的方法。
Nodejs的path模塊介紹:
網址:http://nodejs.cn/api/path.html
path 模塊提供了一些工具函數,用於處理文件與目錄的路徑。可以通過以下方式使用:
const path = require(‘path‘);
或
var path = require(‘path‘)
Windows 與 POSIX
path 模塊的默認操作會根據
在 POSIX 上:
path.basename(‘C:\\temp\\myfile.html‘);// 返回: ‘C:\\temp\\myfile.html‘
在 Windows 上:
path.basename(‘C:\\temp\\myfile.html‘);// 返回: ‘myfile.html‘
要想在任何操作系統上處理 Windows 文件路徑時獲得一致的結果,可以使用 path.win32:
在 POSIX 和 Windows 上:
path.win32.basename(‘C:\\temp\\myfile.html‘);// 返回: ‘myfile.html‘
要想在任何操作系統上處理 POSIX 文件路徑時獲得一致的結果,可以使用 path.posix:
在 POSIX 和 Windows 上:
path.posix.basename(‘/tmp/myfile.html‘);// 返回: ‘myfile.html‘
註意:在 Windows 上 Node.js 遵循單驅動器工作目錄的理念。 當使用驅動器路徑且不帶反斜杠時就能體驗到該特征。 例如,fs.readdirSync(‘c:\\‘) 可能返回與 fs.readdirSync(‘c:‘) 不同的結果。
常見方法
path.join([...paths])
新增於: v0.1.16
- ...paths <string> 一個路徑片段的序列
- 返回: <string>
path.join() 方法使用平臺特定的分隔符把全部給定的 path 片段連接到一起,並規範化生成的路徑。
長度為零的 path 片段會被忽略。 如果連接後的路徑字符串是一個長度為零的字符串,則返回 ‘.‘,表示當前工作目錄。
例子:
path.join(‘/foo‘, ‘bar‘, ‘baz/asdf‘, ‘quux‘, ‘..‘);// 返回: ‘/foo/bar/baz/asdf‘
path.join(‘foo‘, {}, ‘bar‘);// 拋出 ‘TypeError: Path must be a string. Received {}‘
如果任一路徑片段不是一個字符串,則拋出 TypeError。
path.normalize(path)
新增於: v0.1.23
- path <string>
- 返回: <string>
path.normalize() 方法會規範化給定的 path,並解析 ‘..‘ 和 ‘.‘ 片段。
當發現多個連續的路徑分隔符時(如 POSIX 上的 / 與 Windows 上的 \ 或 /),它們會被單個的路徑分隔符(POSIX 上是 /,Windows 上是 \)替換。 末尾的多個分隔符會被保留。
如果 path 是一個長度為零的字符串,則返回 ‘.‘,表示當前工作目錄。
例如,在 POSIX 上:
path.normalize(‘/foo/bar//baz/asdf/quux/..‘);// 返回: ‘/foo/bar/baz/asdf‘
在 Windows 上:
path.normalize(‘C:\\temp\\\\foo\\bar\\..\\‘);// 返回: ‘C:\\temp\\foo\\‘
Since Windows recognizes multiple path separators, both separators will be replaced by instances of the Windows preferred separator (\):
path.win32.normalize(‘C:////temp\\\\/\\/\\/foo/bar‘);// Returns: ‘C:\\temp\\foo\\bar‘
如果 path 不是一個字符串,則拋出 TypeError。
path.resolve([...paths])
新增於: v0.3.4
- ...paths <string> 一個路徑或路徑片段的序列
- 返回: <string>
path.resolve() 方法會把一個路徑或路徑片段的序列解析為一個絕對路徑。
給定的路徑的序列是從右往左被處理的,後面每個 path 被依次解析,直到構造完成一個絕對路徑。 例如,給定的路徑片段的序列為:/foo、/bar、baz,則調用 path.resolve(‘/foo‘, ‘/bar‘, ‘baz‘) 會返回 /bar/baz。
如果處理完全部給定的 path 片段後還未生成一個絕對路徑,則當前工作目錄會被用上。
生成的路徑是規範化後的,且末尾的斜杠會被刪除,除非路徑被解析為根目錄。
長度為零的 path 片段會被忽略。
如果沒有傳入 path 片段,則 path.resolve() 會返回當前工作目錄的絕對路徑。
例子:
path.resolve(‘/foo/bar‘, ‘./baz‘);// 返回: ‘/foo/bar/baz‘
path.resolve(‘/foo/bar‘, ‘/tmp/file/‘);// 返回: ‘/tmp/file‘
path.resolve(‘wwwroot‘, ‘static_files/png/‘, ‘../gif/image.gif‘);// 如果當前工作目錄為 /home/myself/node,// 則返回 ‘/home/myself/node/wwwroot/static_files/gif/image.gif‘
如果任何參數不是一個字符串,則拋出 TypeError。
介紹nodejs中的path模塊的幾個方法