path 路径

path 是 Node.js 内置的路径处理模块,负责拼接、解析、规范化文件路径。所有方法都是同步的。默认按当前操作系统规则处理(Windows 用 \,POSIX 用 /)。

引入方式

引入说明
const path = require('node:path')官方推荐写法(node: 前缀)
const path = require('path')同上,省略前缀

常用方法

API返回说明
path.join(...paths)string用平台分隔符拼接路径片段并规范化,空片段忽略
path.resolve(...paths)string把路径片段解析为绝对路径(从右往左拼,直到拼出绝对路径,否则基于当前工作目录)
path.basename(path[, suffix])string取路径最后一段(文件名),可传 suffix 去掉扩展名
path.dirname(path)string取路径的目录部分
path.extname(path)string取扩展名(含点,如 .html;无扩展名返回空串)
path.parse(path)Object把路径拆成 {root, dir, base, ext, name}
path.format(obj)stringparse 的反向:由 {dir, base} 等拼回路径字符串
path.isAbsolute(path)boolean判断是否为绝对路径
path.relative(from, to)string求 from 到 to 的相对路径(如 ../../impl/bbb)
path.normalize(path)string规范化路径:解析 .. / .,合并多余分隔符
path.matchesGlob(path, pattern)boolean判断路径是否匹配 glob 通配符模式(Node 22+)

path.parse() 返回对象示例(/home/user/dir/file.txt):

属性值说明
root/根目录
dir/home/user/dir目录部分
basefile.txt文件名(含扩展名)
namefile文件名(不含扩展名)
ext.txt扩展名

join vs resolve:join 只是拼接规范化,不关心是否绝对;resolve 会基于当前工作目录生成绝对路径。format 时若给了 base,则 name/ext 被忽略;若给了 dir,则 root 被忽略。

常用属性

属性值说明
path.sepWindows \ / POSIX /路径片段分隔符(拼接/拆分路径用)
path.delimiterWindows ; / POSIX :环境变量 PATH 的分隔符(process.env.PATH.split(path.delimiter))

跨平台处理

属性说明
path.posix强制按 POSIX 规则处理(/),任何平台都一致
path.win32强制按 Windows 规则处理(\),任何平台都一致

默认 path 方法跟随运行平台,跨平台结果可能不一致。需要固定规则处理路径时(如解析用户传入的 Windows 路径),用 path.win32 / path.posix 前缀。