- 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.html
path.basename("c:\\temp\\myfile.html");
// 下面这行规定使用window模式,忽略系统类型不同
path.win32.basename("c:\\temp\\myfile.html");
// 下面这行规定POSIX规范
path.posix.basename('c:\\temp\\myfile.html');
// 下面会返回c:\\temp\\myfile
path.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'),