参数和返回值设计
- ...paths < string > 路径或路径片段的序列。
- 返回: < string >
接受任意个字符串类型的参数,返回一个字符串值.
生成的路径是规范化后的,且末尾的斜杠会被删除,除非路径是根目录。
console.log(path.resolve('a/'));
//c:\Users\19624\Desktop\demo\a
1
2
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
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