详解path.resolve 以及path.join

一、基础知识

// 1、path为node自带的模块
const path = require('path')

// 2、当前文件路径与当前工作目录
//例如:1、 E:\vue2-starter>node ../path.js(E:\vue2-starter表示工作目录,E:\path.js则是文件路径)
// 2、 E:\>node path.js(E:\表示工作目录路径,E:\path.js是文件路径)


//3、node自带的全局变量:__dirname __filename(与工作目录无关)
// index.js 位于E:\, 运行在E:\下运行node index(与在E:\vue2-starter运行node ../index并无不同)
console.log(__dirname) // e:\,文件目录名
console.log(__filename) // e:\index.js ,文件路径

//4、绝对路径, 可以用path.isAbsolute(path)进行判断
//绝对路径: ‘/app’(在windows下会在前面加上盘符)、‘C:\app\state’(windows)’
//非绝对路径:‘app/state’、 ‘.’

二、path.resolve([...paths])

解释:path.resolve

简要理解:1、给定的路径序列会从右到左进行处理,后面的每个 path 会被追加到前面,直到构造出绝对路径

2、如果在处理完所有给定的 path 片段之后还未生成绝对路径,则会在前面添加当前工作目录

3、生成的路径会被规范化,并且尾部的斜杠会被删除(除非路径被解析为根目录)。

4、如果没有传入 path 片段,则 path.resolve() 会返回当前工作目录的绝对路径。

console.log(path.resolve('/index')) // 盘符:\index
console.log(path.resolve('index')) // 当前工作目录的绝对路径/index
console.log(path.resolve('/app', 'index/')) // 盘符:\app\index
console.log(path.reolve())// 当前工作目录的绝对路径

三、path.join([...paths])

解释:path.join

简要理解:1、path.join() 方法会将所有给定的 path 片段连接到一起(使用平台特定的分隔符作为定界符),然后规范化生成的路径。

path.join('/目录1', '目录2', '目录3/目录4', '目录5', '..');
// 返回: '/目录1/目录2/目录3/目录4'(windows下:盘符:\录1\目录2\目录3\目录4)
posted @ 2020-09-20 11:03  Skylooker  阅读(1477)  评论(0编辑  收藏  举报