1. 程式人生 > >介紹nodejs中的path模塊的幾個方法

介紹nodejs中的path模塊的幾個方法

rsync wro 不同 osi {} tip multi 發現 post

webpack中常用的:

var path = require(‘path‘)

是nodejs中的path模塊,介紹一下webpack中常用的幾個path模塊的方法:

應用node環境的時候,這個path模塊的方法經常被用到,處理路徑的方法。

Nodejspath模塊介紹:

網址:http://nodejs.cn/api/path.html

path 模塊提供了一些工具函數,用於處理文件與目錄的路徑。可以通過以下方式使用:

const path = require(‘path‘);

var path = require(‘path‘)

Windows 與 POSIX

path 模塊的默認操作會根據

Node.js 應用程序運行的操作系統的不同而變化。 比如,當運行在 Windows 操作系統上時,path 模塊會認為使用的是 Windows 風格的路徑。

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模塊的幾個方法