一、官网介绍
新增于: v0.3.4
-
...paths
<string> 路径或路径片段的序列 -
返回:<string>
path.resolve()
方法将路径或路径片段的序列解析为绝对路径。给定的路径序列从右到左处理,每个后续的
path
会被追加到前面,直到构建绝对路径。例如,给定路径段的顺序:/foo
、/bar
、baz
,调用path.resolve('/foo', '/bar', 'baz')
将返回/bar/baz
,因为'baz'
不是绝对路径,但'/bar' + '/' + 'baz'
是。如果在处理完所有给定的
path
片段之后,还没有生成绝对路径,则使用当前工作目录。
二、理解与示例
理解:
- 参数 valueX 好比在当前的工作目录(working directory)输入的cd valueX 。
- 注意一些特定的规则:若字符以 / 开头,不会拼接到前面的路径;若以 ../ 开头,拼接前面的路径,且不含最后一节路径;若连续出现多个../../..或者../..则忽略前方..个路径名进行拼接;若以 ./ 开头或者没有符号 则拼接前面路径。
示例:
let path = require("path") //引入node的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('home', 'foo', 'build','aaaa','aadada','../../..', 'asset')
//return '/home/foo/asset'