// path: 用于处理文件与目录的路径
let path = require('path')
let log = (...value) => console.log(...value)
let str1 = '/foo/bar/asdf/quux.html'
let str2 = 'c://name/abc/ddd'
let str3 = '/foo/bar/abc/ccc'
/**
* basename(path, ext) : 返回 path 的最后一部分
* path: 文件 || 目录 路径
* ext: 去掉不匹配的部分 看例子
*/
// quux.html
path.basename(str1)
// ddd
path.basename(str2)
// ccc
path.basename(str3)
// quux 后面的.html 把要输出的.html后缀过滤掉了
path.basename(str1, '.html')
/**
* dirname(path) : 返回一个 path 的目录名
*/
// /foo/bar/asdf
path.dirname(str1)
// c://name/abc
path.dirname(str2)
// /foo/bar/abc
path.dirname(str3)
/**
* extname: 返回path 的扩展名 从path 的最后一个 . 字符到字符串结束
*/
// .html
path.extname(str1)
// 空
path.extname(str2)
// 输出空
path.extname(str3)
// 如果path 的第一个字符是 . 则返回一个空字符串
path.extname('.index')
/**
* join(): 链接字符串 并规范化生成路径
如果连接字符串长度为0 则返回 . 表示当前工作目录
*/
path.join('/foo', 'bar', 'abc/asdf', 'quux')
path.join(str1, 'abc')
/**
* parse(path): 返回一个对象
root: 根目录
dir: 目录名
base: 等价于 path.basename
ext: 等价于 path.extname
name: path .前面部分名字
*/
/**
{
root: '/',
dir: '/foo/bar/asdf',
base: 'quux.html',
ext: '.html',
name: 'quux'
}
*/
path.parse(str1)
/**
{
root: '',
dir: 'c://name/abc',
base: 'ddd',
ext: '',
name: 'ddd'
}
*/
path.parse(str2)
/**
{
root: '/',
dir: '/foo/bar/abc',
base: 'ccc',
ext: '',
name: 'ccc'
}
*/
path.parse(str3)
// resolve 不给参数 会返回当前工作目录的绝对路径
// /Library/WebServer/Documents
path.resolve()