path.join()
path.join()方法使用平台特定的分隔符作为定界符将所有给定的path片段连接在一起,然后规范化生成的路径零长度的
path片段会被忽略。 如果连接的路径字符串是零长度的字符串,则返回'.',表示当前工作目录。
path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');// 返回: '/foo/bar/baz/asdf'path.join('foo', {}, 'bar');// 抛出 'TypeError: Path must be a string. Received {}'
path.resolve()
path.resolve()> 方法将路径或路径片段的序列解析为绝对路径。
path.join & path.resolve 区别:
- 对于以/开始的路径片段,path.join只是简单的将该路径片段进行拼接,而path.resolve将以/开始的路径片段作为根目录,在此之前的路径将会被丢弃,就像是在terminal中使用cd命令一样。
- path.resolve总是返回一个以相对于当前的工作目录(working directory)的绝对路径。
🌰:
path.join('/foo', './bar', './baz/asdf', 'quux', '..'); // 返回 /foo/bar/baz/asdfpath.join('/foo', 'bar', 'baz/asdf', '.', '.'); // 返回 /foo/bar/baz/asdfpath.join('/foo', 'bar', 'baz/asdf', 'quux'); // 返回 /foo/bar/baz/asdf/quuxpath.join('/foo', 'bar', 'baz/asdf', '..', '..'); // 返回 /foo/barpath.resolve(); // F:/1/2/task6/test 当前工作目录的绝对路径path.resolve('./a'); // F:/1/2/task6/test/apath.resolve('../a'); // F:/1/2/task6/apath.resolve('.'); // F:/1/2/task6/testpath.resolve('..'); // F:/1/2/task6path.resolve('/')); // F:/path.resolve('./a','../c/d'); // F:/1/2/task6/test/c/dpath.resolve('./a','./c/d'); // F:/1/2/task6/test/a/c/dpath.resolve('/a','../c/d'); // F:c/dpath.resolve('/a','./c/d'); // F:/a/c/dpath.resolve('./a','/b','./c/d'); // F:/b/c/dpath.resolve('a','b','c/d'); // F:/1/2/task6/test/a/b/c/dpath.resolve('./a','./b','c/d'); // F:/1/2/task6/test/a/b/c/dpath.resolve('./a','/b','c/d'); // F:/b/c/dpath.resolve('./a/b','..','c/d'); // F:/1/2/task6/test/a/c/dpath.resolve('./a','..','c/d'); // F:/1/2/task6/test/c/d
