谈谈我对path.resolve()的理解

前言

前一段时间在阅读源码的时候,遇到了path.resolve(),经过请教,终于知道了这个方法的作用。这边文章用来记录自己的使用心得。

正文

path.resolve()

作用:path.resolve() 该方法将一些的 路径/路径段 解析为绝对路径。
语法:path.resolve( [from…],to )。
说明:将参数to位置的字符解析到一个绝对路径里,[from … ]为选填项,路径源,path.resolve总是返回一个以相对于当前的工作目录(working directory)的绝对路径。
用法:

var 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'

总结:
path.resolve(“./path”)的特性有以下几点:

  1. 从右往左读取"path"路径,并开始拼接,本身就自带绝对路径参数 “to” ;
  2. 当"path"路径为空时,则会直接获取当前文件所在的绝对路径;
  3. 当遇到字符以 ./ 开头或者没有字符,则正常拼接,所以可省略不加字符;
  4. 当遇到字符以 / 开头,则不会拼接到前面的路径并以自身所在盘为根路径加以拼接;
  5. 当遇到字符以 …/ 开头,则会将下一个要拼接"path"路径给覆盖,然后继续往左拼接;
  6. 搭配__dirname时,需将放置第一位,且与 ’ / ’ 有互相覆盖的冲突;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Shansec~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值