- path.basename(path: string [, ext: string]): string; 返回路径的路径
- path.delimiter: string 返回系统平台特定的路径界定符
- path.dirname(path:string) : string
- path.extname(path) : string
- path.format(pathObject: {
- }): string
- path.isAbsolute(path: string): boolean
- path.join([…paths: string]): string
- path.normalize(path: string): string
- path.resolve([…paths: string]): string
path.basename(path: string [, ext: string]): string; 返回路径的路径
**ext表示文件扩展名,path是字符串路径注意 如果 path 不是字符串或者给定了 ext 且不是字符串,则抛出 TypeError。
const path = require('path');// 注意此方法根据系统类型不同返回不通的值,window中返回myfile.html,POSIX规范的系统中返回c:\temp\myfile.htmlpath.basename("c:\\temp\\myfile.html");// 下面这行规定使用window模式,忽略系统类型不同path.win32.basename("c:\\temp\\myfile.html");// 下面这行规定POSIX规范path.posix.basename('c:\\temp\\myfile.html');// 下面会返回c:\\temp\\myfilepath.posix.basename('c:\\temp\\myfile.html', '.html');
path.delimiter: string 返回系统平台特定的路径界定符
提供平台特定的路径界定符
;用于 Windows:用于 POSIX
/*process.env 属性返回包含用户环境的对象此对象的示例如下所示:{TERM: 'xterm-256color',SHELL: '/usr/local/bin/bash',USER: 'maciej',PATH: '~/.bin/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin',PWD: '/Users/maciej',EDITOR: 'vim',SHLVL: '1',HOME: '/Users/maciej',LOGNAME: 'maciej',_: '/usr/local/bin/node'}*/console.log(process.env.PATH);// 打印: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin'process.env.PATH.split(path.delimiter);// 返回: ['/usr/bin', '/bin', '/usr/sbin', '/sbin', '/usr/local/bin']console.log(process.env.PATH);// 打印: 'C:\Windows\system32;C:\Windows;C:\Program Files\node\'process.env.PATH.split(path.delimiter);// 返回: ['C:\\Windows\\system32', 'C:\\Windows', 'C:\\Program Files\\node\\']
path.dirname(path:string) : string
path.dirname() 方法返回 path 的目录名,类似于 Unix 的 dirname 命令。 尾部的目录分隔符将被忽略,参阅 [path.sep](http://nodejs.cn/s/io7vxJ)
path.dirname('/foo/bar/baz/asdf/quux');// 返回: '/foo/bar/baz/asdf'console.log(__dirname);console.log(path.dirname(__dirname));// 输出下面两行内容// /Users/lijunyang/project/webpack-demo// /Users/lijunyang/project
path.extname(path) : string
path.extname('index.html');// 返回: '.html'path.extname('index.coffee.md');// 返回: '.md'path.extname('index.');// 返回: '.'path.extname('index');// 返回: ''path.extname('.index');// 返回: ''path.extname('.index.md');// 返回: '.md'
path.format(pathObject: {
dir: string,
root: string,
base: string,
name: string,
ext: string
}): string
- 如果提供了
pathObject.dir,则忽略pathObject.root。 - 如果
pathObject.base存在,则忽略pathObject.ext和pathObject.name。
// 在 POSIX 上:path.format({root: '/ignored',dir: '/home/user/dir',base: 'file.txt'}); // 返回: '/home/user/dir/file.txt'path.format({root: '/',base: 'file.txt',ext: 'ignored'}); // 返回: '/file.txt'// 在window上path.format({dir: 'C:\\path\\dir',base: 'file.txt'});// 返回: 'C:\\path\\dir\\file.txt'
path.isAbsolute(path: string): boolean
检测当前是否是绝对路径
path.isAbsolute(__dirname); // true;
path.join([…paths: string]): string
path.join() 方法使用平台特定的分隔符作为定界符将所有给定的 path 片段连接在一起,然后规范化生成的路径。
console.log(path.join('/foo', 'bar', 'baz/asdf', 'quux'));console.log(path.join('/foo', 'bar', 'baz/asdf', 'quux', '..'));console.log(path.join());/*以下三行是返回结果/foo/bar/baz/asdf/quux/foo/bar/baz/asdf.*/
path.normalize(path: string): string
path.normalize() 方法规范化给定的 path,解析 '..' 和 '.' 片段。
当找到多个连续的路径段分隔字符时(例如 POSIX 上的 /、Windows 上的 \ 或 /),则它们将被替换为单个平台特定的路径段分隔符(POSIX 上的 /、Windows 上的 \)。 尾部的分隔符会保留。
// 在window上path.win32.normalize('C:////temp\\\\/\\/\\/foo/bar');// 返回: 'C:\\temp\\foo\\bar'path.normalize('C:\\temp\\\\foo\\bar\\..\\');// 返回: 'C:\\temp\\foo\\'// 在 POSIX 上:path.normalize('/foo/bar//baz/asdf/quux/..');// 返回: '/foo/bar/baz/asdf'
path.resolve([…paths: string]): string
path.resolve(__dirname, './xxx.json'),
