Universal drop-in replacement for node:path
This package is a universal drop-in replacement for Node.js' path
module.
It enforces consistency between POSIX and Windows operating systems and also provides additional utilities for working with file URLs, paths, and extensions.
For historical reasons, Windows followed MS-DOS and used backslashes (\
) to separate path
components, as opposed to the forwardslashes (/
) used by POSIX operating systems. Even though Windows operating
systems now support both separators, there are still discrepancies between operating systems when using Node.js' path
module:
The default operation of the
node:path
module varies based on the operating system on which a Node.js application is running. Specifically, when running on a Windows operating system, thenode:path
module will assume that Windows-style paths are being used. – Windows vs. POSIX
This package enforces consistency between operating systems by ensuring paths are POSIX-compliant. With support for both
drive and UNC paths as well, platform-specific modules like
node:path/posix
and node:path/win32
are no longer needed.
To achieve consistent results when working with Windows file paths on any operating system, usepath.win32
.To achieve consistent results when working with POSIX file paths on any operating system, usepath.posix
.
To achieve consistent results when working with Windows file paths on any operating system, use pathe
. To achieve
consistent results when working with POSIX file paths on any operating system, use pathe
. 😊
This package is ESM only.
In Node.js (version 18+) with yarn:
yarn add @flex-development/pathe
See Git - Protocols | Yarn for details regarding installing from Git.
In Deno with esm.sh
:
import { parse } from 'https://esm.sh/@flex-development/pathe'
In browsers with esm.sh
:
<script type="module">
import { parse } from 'https://esm.sh/@flex-development/pathe'
</script>
import {
addExt,
basename,
changeExt,
cwd,
delimiter,
dirname,
dot,
extToValue,
extname,
fileURLToPath,
format,
formatExt,
isAbsolute,
isDeviceRoot,
isSep,
isURL,
join,
matchesGlob,
normalize,
parse,
pathToFileURL,
relative,
removeExt,
resolve,
resolveWith,
root,
sep,
toNamespacedPath,
toPath,
toPosix
} from '@flex-development/pathe'
This package exports the following identifiers:
addExt
basename
changeExt
cwd
delimiter
dirname
dot
extToValue
extname
extnames
fileURLToPath
formatExt
format
isAbsolute
isDeviceRoot
isSep
isURL
join
matchesGlob
normalize
parse
pathToFileURL
posix
relative
removeExt
resolveWith
resolve
root
sep
toNamespacedPath
toPath
toPosix
win32
The default export is pathe
.
Documentation website coming soon.
This package is fully typed with TypeScript.
Cwd
Delimiter
DeviceRoot
Dot
DriveLetter
EmptyString
Ext
FormatInputPathObject
ParsedPath
Pathe
PlatformOptions
PlatformPath
PosixDelimiter
PosixPlatformPath
PosixSep
Sep
WindowsDelimiter
WindowsPlatformPath
WindowsSep
See CONTRIBUTING.md
.
This project has a code of conduct. By interacting with this repository, organization, or community you agree to abide by its terms.