__dirname __filename path.join() path.resolve() 的用法

日常开发配置webpack, node.js项目 经常会遇到这几个方法,经常搞混,为了彻底理解,写个笔记

前期准备:

为了方便演示demo: 直接在D盘根目录创建了一个pathDemo文件夹  D:/pathDemo ,案例代码写在app.js里 

在这里插入图片描述

1. __dirname 与 __filename

  1. __dirname 可以动态获取当前文件所属目录的绝对路径
  2. __filename 可以用来动态获取当前文件的绝对路径,包含当前文件自己
// 当前js文件路径为D:/pathDemo/app.js
console.log('__dirname->',__dirname);   //输出  __dirname-> D:\pathDemo
console.log('__fileName->',__filename);   //输出 __fileName-> D:\pathDemo\app.js  (这里包括文件自己本身)

2. path中方法的使用

1 .path.join()
path.join()方法是将多个参数字符串合并拼接成一个路劲字符串
// 当前js文件路径为D:/pathDemo/app.js
const path = require('path')

// 1.直接拼接路径
console.log(path.join(__dirname,'a','b','demo.js'));   //输出: D:\pathDemo\a\b\demo.js
// 2.路劲开头的 / 不会影响拼接,  两个点 .. 代表上一级目录
console.log(path.join(__dirname,'/a','./b','../') );  //输出: D:\pathDemo\a\
// 3.path.join()会做路径字符串的校验,不合法时会报错
path.join(__dirname,'a',{})   //The "path" argument must be of type string. Received an instance of Object

2. path.resolve()
path.resolve() 方法是以程序为根目录,作为起点,根据参数解析出一个绝对路径。 以应用程序为根目录,普通字符串代表子目录,/ 代表绝对路径根目录
// 当前js文件路径为D:/pathDemo/app.js
// 1.得到应用程序启动文件的目录(得到当前执行文件绝对路径)
console.log(path.resolve());   //输出 D:\pathDemo

//  / 斜杠代表根目录,一般拼接的时候需要小心点使用 / 斜杠
console.log(path.resolve('a','b','/c')); //输出 D:\c

//这个就是将文件路径拼接
console.log(path.resolve(__dirname,'a/b')); //输出 D:\pathDemo\a\b

// 这个是用当前应用程序启动文件绝对路径与后面的所有字符串拼接, /代表根目录,.. 也是代表上一级目录
console.log(path.resolve('wwwroot','static/img','../gif/image.git'));   // 输出:D:\pathDemo\wwwroot\static\gif\image.git
console.log(path.resolve('wwwroot','static/img','/gif/image.git')); //输出:D:\gif\image.git

完整demo贴图

在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值