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:pathmodule varies based on the operating system on which a Node.js application is running. Specifically, when running on a Windows operating system, thenode:pathmodule 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/patheSee 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:
addExtbasenamechangeExtcwddelimiterdirnamedotextToValueextnameextnamesfileURLToPathformatExtformatisAbsoluteisDeviceRootisSepisURLjoinmatchesGlobnormalizeparsepathToFileURLposixrelativeremoveExtresolveWithresolverootseptoNamespacedPathtoPathtoPosixwin32
The default export is pathe.
Documentation website coming soon.
This package is fully typed with TypeScript.
CwdDelimiterDeviceRootDotDriveLetterEmptyStringExtFormatInputPathObjectParsedPathPathePlatformOptionsPlatformPathPosixDelimiterPosixPlatformPathPosixSepSepWindowsDelimiterWindowsPlatformPathWindowsSep
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.