path.join()与path.resolve()区别
1.path.resolve([...paths])
path.resolve()
方法会把一个路径或路径片段的序列解析为一个绝对路径。
给定的路径的序列是从右往左被处理的,后面每个 path
被依次解析,直到构造完成一个绝对路径。 例如,给定的路径片段的序列为:/foo
、/bar
、baz
,则调用 path.resolve('/foo', '/bar', 'baz')
会返回 /bar/baz
。
如果处理完全部给定的 path
片段后还未生成一个绝对路径,则当前工作目录会被用上。
生成的路径是规范化后的,且末尾的斜杠会被删除,除非路径被解析为根目录。
长度为零的 path
片段会被忽略。
如果没有传入 path
片段,则 path.resolve()
会返回当前工作目录的绝对路径。
console.log(path.resolve('/a/b', './c')); console.log(path.resolve('/a', '/b')); console.log(path.resolve('a', 'b/c/', '../image.gif')); 结果: /a/b/c /b /a/b/image.gif
如果任何参数不是一个字符串,则抛出 TypeError
。
2.path.join([...paths])
path.join()
方法使用平台特定的分隔符把全部给定的 path
片段连接到一起,并规范化生成的路径。
长度为零的 path
片段会被忽略。 如果连接后的路径字符串是一个长度为零的字符串,则返回 '.'
,表示当前工作目录。
path.join('/foo', 'bar', 'baz/asdf', 'quux', '..'); // '/foo/bar/baz/asdf'