参数和返回值设计

  • ...paths < string > 路径或路径片段的序列。
  • 返回: < string >

接受任意个字符串类型的参数,返回一个字符串值.
生成的路径是规范化后的,且末尾的斜杠会被删除,除非路径是根目录。

console.log(path.resolve('a/'));
//c:\Users\19624\Desktop\demo\a
1
2

处理规律

指定的路径序列是从右往左开始处理的,并且对每个参数进行相同规律的一次判断处理,但是先处理的参数不会放在前面,而是按照参数的顺序拼接.

  • 长度为零的 path 片段会被忽略。
  • 如果没有传入 path 片段,则返回当前工作目录的绝对路径;
  • 若字符以 / 开头,不会拼接到前面的路径;
  • 若以 ./ 开头 或者没有符号 则拼接前面路径;
  • 若以 ../ 开头,拼接前面的路径,且不含最后一节路径;
path.resolve('/foo/bar', './baz'); // returns '/foo/bar/baz'

path.resolve('/foo/bar', 'baz'); // returns '/foo/bar/baz'

path.resolve('/foo/bar', '/baz'); // returns '/baz'

path.resolve('/foo/bar', '../baz'); // returns '/foo/baz'

path.resolve('home', '/foo/bar', '../baz'); // returns '/foo/baz'

path.resolve('home', './foo/bar', '../baz'); // returns '/home/foo/baz'

path.resolve('home', 'foo/bar', '../baz'); // returns '/home/foo/baz'

path.resolve('/foo/bar', './baz'); // returns '/foo/bar/baz'

path.resolve('/foo/bar', 'baz'); // returns '/foo/bar/baz'

path.resolve('/foo/bar', '/baz'); // returns '/baz'

path.resolve('/foo/bar', '../baz'); // returns '/foo/baz'

path.resolve('home', '/foo/bar', '../baz'); // returns '/foo/baz'

path.resolve('home', './foo/bar', '../baz'); // returns '/home/foo/baz'

path.resolve('home', 'foo/bar', '../baz'); // returns '/home/foo/baz'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

TOC