pathe

Universal drop-in replacement for node:path
Contents
What is this?
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.
When should I use this?
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, the node: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,
use path.win32
.
To achieve consistent results when working with POSIX file paths on any operating system,
use path.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
. :blush:
Install
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>
Use
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'
API
This package exports the following identifiers:
The default export is pathe
.
Documentation website coming soon.
Types
This package is fully typed with TypeScript.
Contribute
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.