每天一个nodejs模块-path

356 阅读2分钟

这是我参与更文挑战的第2天,活动详情查看: 更文挑战

文件路径处理模块 path

path模块是nodejs提供的进行文件路径处理的模块,他抹平了操作系统之间的差异,让我们可以在任意操作系统上生成对应的文件路径并处理。

最常用方法 resolve

path.resolve是我们最常见到的文件路径处理方法,他主要负责生成绝对路径,像在webpack中我们经常看到path.resolve方法,具体使用说明如下, 接收多个参数,返回参数拼成的url,如果url不是一个绝对路径,会将当前文件所在目录和传入参数一起生成一个绝对路径,一般上搭配__dirname使用,具体用例如下:

// 执行目录在当前文件上一层
const {resolve} = require('path');
console.log(resolve(__dirname, 'resolve.js')); // /Users/admin/study-every-day/20210609/resolve.js
console.log(resolve('resolve.js')) // /Users/admin/study-every-day/resolve.js

由上面的例子可知,__dirname是当前文件所在目录绝对路径,且resolve返回的路径最后没有路径分隔符,也就是说一般上要读取某个文件时,我们使用这个方法

路径连接函数join

join和resolve不同的地方在于,join只是路径连接,他返回的路径基于传入参数绝对,如果传入的参数是绝对路径,那么他就是绝对路径,如果不是,则就是连接后的普通路径,具体如下:

const {join} = require('path');
console.log(join(__dirname, 'join.js')) // /Users/admin/coding/study-every-day/20210609/join.js
console.log(join('usr', 'local')) // usr/local

获取两个路径之间的相对关系 relative

path.relative返回传入两个路径之间的相对关系,具体如下

const {relative} = require('path');
const from = '/usr/local/project/'
const to = '/usr/local/project/components/'
console.log(relative(from, to)) // components

判断当前路径是否是绝对路径 isAbsolute

path.isAbsolute 返回当前目录是否是绝对路径

console.log(isAbsolute(__dirname));  // true
console.log(isAbsolute('join')); // false

获取当前文件名称 basename

path.basename获取当前文件的文件名称,包括后缀名,具体如下:

const {basename} = require('path');
console.log(basename(__dirname + '/basename.js')) // basename.js

获取当前文件后缀 extname

path.extname获取当前文件的文件后缀,具体如下

const {basename, extname} = require('path');
console.log(extname(__dirname + '/basename.js')) // .js

获取当前系统路径分隔符

path.sep为当前系统路径分隔符

总结

以上就是今天的全部内容了,欢迎大家点赞留言,或者提出自己想看的模块内容