path.resolve和path.join
一、path模块的引入
需要引入path模块才能使用path.resolve()和path.join()
| 1 | const path = require('path'); | 
二、path.resolve([from…],to)
作用:把一个路径或路径片段的序列解析为一个绝对路径。相当于执行cd操作。path.resolve 中 'doc' 和 './doc' 等价,代表当前文件夹下。但是'/doc'代表的是根目录下的doc
Node的path.resolve(__dirname,’./src’)
这个问题可以拆分为两个知识点:
- path.resolve( )方法
- __dirname变量
 __dirname是__directory+name的缩写,顾名思义,是目录名的意思,代表当前文件的绝对路径。
| 1 | const path = require("path"); | 
运行结果:
| 1 | c:\Users\m1883\Desktop\webpack-test\src | 
注意:
- 只传入__dirname也可以自动调用path.resolve方法
- 可以拼接路径字符串,但是不调用path.resolve()方法拼接失败运行结果:1 
 2
 3
 4const path = require("path"); 
 console.log(__dirname)
 console.log(__dirname+"aaa")
 console.log(__dirname+"/aaa")
 看看第二个和第三个的结果是错误的路径1 
 2
 3c:\Users\m1883\Desktop\webpack-test\src 
 c:\Users\m1883\Desktop\webpack-test\srcaaa
 c:\Users\m1883\Desktop\webpack-test\srcaaa
如果没有用__dirname,直接传值的话,那么值会覆盖上级的路径
| 1 | const path = require("path"); | 
运行结果:
| 1 | c:\Users\m1883\Desktop\webpack-test\aaa | 
三、path.join(path1,path2,path3…….)
 作用:将路径片段使用特定的分隔符(window:\)连接起来形成路径,并规范化生成的路径。若任意一个路径片段类型错误,会报错。 path.join 中 'doc' 、'/doc' 和 './doc' 三者等价,代表当前目录下。
| 1 | const path = require("path"); | 
运行结果:
| 1 | c:\Users\m1883\Desktop\webpack-test\src | 
path.resolve()和path.join()的区别
join()只是拼接各个path片段,并不像resolve()一样除了拼接各个字段还拼接了工作目录的路径。  
例子:
| 1 | const path = require("path"); | 
运行结果:
| 1 | aaa | 
相关博客
  - 
        2020-04-21