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