详解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)