path.basename(path: string [, ext: string]): string; 返回路径的路径

**ext表示文件扩展名,path是字符串路径注意 如果 path 不是字符串或者给定了 ext 且不是字符串,则抛出 TypeError。

  1. const path = require('path');
  2. // 注意此方法根据系统类型不同返回不通的值,window中返回myfile.html,POSIX规范的系统中返回c:\temp\myfile.html
  3. path.basename("c:\\temp\\myfile.html");
  4. // 下面这行规定使用window模式,忽略系统类型不同
  5. path.win32.basename("c:\\temp\\myfile.html");
  6. // 下面这行规定POSIX规范
  7. path.posix.basename('c:\\temp\\myfile.html');
  8. // 下面会返回c:\\temp\\myfile
  9. path.posix.basename('c:\\temp\\myfile.html', '.html');

path.delimiter: string 返回系统平台特定的路径界定符

提供平台特定的路径界定符

  • ; 用于 Windows
  • : 用于 POSIX
  1. /*
  2. process.env 属性返回包含用户环境的对象
  3. 此对象的示例如下所示:
  4. {
  5. TERM: 'xterm-256color',
  6. SHELL: '/usr/local/bin/bash',
  7. USER: 'maciej',
  8. PATH: '~/.bin/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin',
  9. PWD: '/Users/maciej',
  10. EDITOR: 'vim',
  11. SHLVL: '1',
  12. HOME: '/Users/maciej',
  13. LOGNAME: 'maciej',
  14. _: '/usr/local/bin/node'
  15. }
  16. */
  17. console.log(process.env.PATH);
  18. // 打印: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin'
  19. process.env.PATH.split(path.delimiter);
  20. // 返回: ['/usr/bin', '/bin', '/usr/sbin', '/sbin', '/usr/local/bin']
  21. console.log(process.env.PATH);
  22. // 打印: 'C:\Windows\system32;C:\Windows;C:\Program Files\node\'
  23. process.env.PATH.split(path.delimiter);
  24. // 返回: ['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)

  1. path.dirname('/foo/bar/baz/asdf/quux');
  2. // 返回: '/foo/bar/baz/asdf'
  3. console.log(__dirname);
  4. console.log(path.dirname(__dirname));
  5. // 输出下面两行内容
  6. // /Users/lijunyang/project/webpack-demo
  7. // /Users/lijunyang/project

path.extname(path) : string

  1. path.extname('index.html');
  2. // 返回: '.html'
  3. path.extname('index.coffee.md');
  4. // 返回: '.md'
  5. path.extname('index.');
  6. // 返回: '.'
  7. path.extname('index');
  8. // 返回: ''
  9. path.extname('.index');
  10. // 返回: ''
  11. path.extname('.index.md');
  12. // 返回: '.md'

path.format(pathObject: {

dir: string,
root: string,
base: string,
name: string,
ext: string

}): string

  • 如果提供了 pathObject.dir,则忽略 pathObject.root
  • 如果 pathObject.base 存在,则忽略 pathObject.extpathObject.name
  1. // 在 POSIX 上:
  2. path.format({
  3. root: '/ignored',
  4. dir: '/home/user/dir',
  5. base: 'file.txt'
  6. }); // 返回: '/home/user/dir/file.txt'
  7. path.format({
  8. root: '/',
  9. base: 'file.txt',
  10. ext: 'ignored'
  11. }); // 返回: '/file.txt'
  12. // 在window上
  13. path.format({
  14. dir: 'C:\\path\\dir',
  15. base: 'file.txt'
  16. });
  17. // 返回: 'C:\\path\\dir\\file.txt'

path.isAbsolute(path: string): boolean

检测当前是否是绝对路径

  1. path.isAbsolute(__dirname); // true;

path.join([…paths: string]): string

path.join() 方法使用平台特定的分隔符作为定界符将所有给定的 path 片段连接在一起,然后规范化生成的路径。

  1. console.log(path.join('/foo', 'bar', 'baz/asdf', 'quux'));
  2. console.log(path.join('/foo', 'bar', 'baz/asdf', 'quux', '..'));
  3. console.log(path.join());
  4. /*
  5. 以下三行是返回结果
  6. /foo/bar/baz/asdf/quux
  7. /foo/bar/baz/asdf
  8. .
  9. */

path.normalize(path: string): string

path.normalize() 方法规范化给定的 path,解析 '..''.' 片段。
当找到多个连续的路径段分隔字符时(例如 POSIX 上的 /、Windows 上的 \/),则它们将被替换为单个平台特定的路径段分隔符(POSIX 上的 /、Windows 上的 \)。 尾部的分隔符会保留。

  1. // 在window上
  2. path.win32.normalize('C:////temp\\\\/\\/\\/foo/bar');
  3. // 返回: 'C:\\temp\\foo\\bar'
  4. path.normalize('C:\\temp\\\\foo\\bar\\..\\');
  5. // 返回: 'C:\\temp\\foo\\'
  6. // 在 POSIX 上:
  7. path.normalize('/foo/bar//baz/asdf/quux/..');
  8. // 返回: '/foo/bar/baz/asdf'

path.resolve([…paths: string]): string

  1. path.resolve(__dirname, './xxx.json'),