path.join([...paths])和path.resolve([...paths])的区别
2024/4/22大约 1 分钟
path.join([...paths])
path.join()
// => .
path.join('')
// => .
path.join('.')
// => .
path.join('..')
// => ..
path.join('/')
// => \
path.join('D:/temp', '', 'foo/bar')
// => E:\temp\foo\bar
path.join('D:/temp', '.', 'foo/bar')
// => E:\temp\foo\bar
path.join('D:/temp', '..', 'foo/bar')
// => E:\foo\bar
path.join('D:/temp', '/', 'foo/bar')
// => E:\temp\foo\bar
path.join('/temp', '', 'foo/bar')
// => \temp\foo\bar
path.join('/temp', '.', 'foo/bar')
// => \temp\foo\bar
path.join('/temp', '..', 'foo/bar')
// => \foo\bar
path.join('/temp', '/', 'foo/bar')
// => \temp\foo\bar
path.join('temp', '', 'foo/bar')
// => temp\foo\bar
path.join('temp', '.', 'foo/bar')
// => temp\foo\bar
path.join('temp', '..', 'foo/bar')
// => foo\bar
path.join('temp', '/', 'foo/bar')
// => temp\foo\bar
path.join('temp', '', '/foo/bar')
// => temp\foo\bar
path.join('temp', '.', '/foo/bar')
// => temp\foo\bar
path.join('temp', '..', '/foo/bar')
// => foo\bar
path.join('temp', '/', '/foo/bar')
// => temp\foo\bar
path.resolve([...paths])
path.resolve()
// => e:\workspace\misc
path.resolve('')
// => e:\workspace\misc
path.resolve('.')
// => e:\workspace\misc
path.resolve('..')
// => e:\workspace
path.resolve('/')
// => e:\
path.resolve('D:/temp', '', 'foo/bar')
// => E:\temp\foo\bar
path.resolve('D:/temp', '.', 'foo/bar')
// => E:\temp\foo\bar
path.resolve('D:/temp', '..', 'foo/bar')
// => E:\foo\bar
path.resolve('D:/temp', '/', 'foo/bar')
// => E:\foo\bar
path.resolve('/temp', '', 'foo/bar')
// => e:\temp\foo\bar
path.resolve('/temp', '.', 'foo/bar')
// => e:\temp\foo\bar
path.resolve('/temp', '..', 'foo/bar')
// => e:\foo\bar
path.resolve('/temp', '/', 'foo/bar')
// => e:\foo\bar
path.resolve('temp', '', 'foo/bar')
// => e:\workspace\misc\temp\foo\bar
path.resolve('temp', '.', 'foo/bar')
// => e:\workspace\misc\temp\foo\bar
path.resolve('temp', '..', 'foo/bar')
// => e:\workspace\misc\foo\bar
path.resolve('temp', '/', 'foo/bar')
// => e:\foo\bar
path.resolve('temp', '', '/foo/bar')
// => e:\foo\bar
path.resolve('temp', '.', '/foo/bar')
// => e:\foo\bar
path.resolve('temp', '..', '/foo/bar')
// => e:\foo\bar
path.resolve('temp', '/', '/foo/bar')
// => e:\foo\bar
总结
相同点
- 两者都会解析相对路径片段。
- 两者都会使用平台路径分隔符标准化最终结果。
不同点
path.join([...paths])方法默认返回.;path.resolve([...paths])默认返回${current-working-directory}。path.join([...paths])方法只是将路径片段连接起来;path.resolve([...paths])方法除了连接路径片段之外,还会将最终结果解析为绝对路径。