A wrapper around the path module that always normalizes to POSIX (including converting backslashes to forward slashes)
npm install crosspath
> A wrapper around the path module that always normalizes to POSIX (including converting backslashes to forward slashes)
The built-in path module in Node.js provides utilities for working with file and directory paths in Node.js. The default operation
of it varies based on the operating system on which Node.js is running.
While this is generally a good thing, there are situations where you might want to normalize paths such that they always follow POSIX formatting.
While the path module _does_ export POSIX specific implementations via the path.posix property,
it is not really sufficient, as it doesn't convert windows-style paths with backslashes into forward slashes.
crosspath is a drop-in replacement for path that wraps it to ensure that paths are always POSIX-formatted, including on Windows.
You can still access the underlying implementations via the native property, which is useful when you do need to convert back into OS-specific
paths, for example when writing to the file system
- A drop-in replacement
- Tiny as it relies on the implementations of the underlying path module
|
| |
|
|
|
|
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| Bubbles
Twitter: @usebubbles | Christopher Blanchard | Ideal Postcodes | Xerox | Trent Raymond | scrubtheweb |
- Description
- Features
- Backers
- Patreon
- Table of Contents
- Install
- npm
- Yarn
- pnpm
- Usage
- Contributing
- Maintainers
- FAQ
- Why not simply use path.posix always? Isn't this library redundant?
- License
```
$ npm install crosspath
``
$ yarn add crosspath
``
$ pnpm add crosspath
Simply import what you need, exactly as you would with the path module:
`ts
// Import just what you need:
import {join, relative} from "crosspath";
// or simply:
import path from "crosspath";
// Becomes 'C:/foo/bar'
path.join("C:\\foo", "\\bar");
// Becomes '../bar'
path.relative("C:\\foo", "C:\\bar");
`
If you want to use the native path helpers and constants without the POSIX normalization, these are all accessible
via the path.native property:
`ts
import path from "crosspath";
// Becomes 'C:\foo\bar' on Windows and C:\foo/\bar on POSIX-systems
path.native.join("C:\\foo", "\\bar");
// Becomes '..\bar' on Windows and ../C:\bar on POSIX-systems
path.native.relative("C:\\foo", "C:\\bar");
`
This can be useful when you _do_ want the paths to respect the OS convention, such as when you interact with the file system.
Do you want to contribute? Awesome! Please follow these recommendations.
| |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Frederik Wessberg
Twitter: @FredWessberg
Github: @wessberg
_Lead Developer_ |
No, not quite (but close). While it is true that path.posix` can be used from Windows, it has the fundamental
shortcoming that it doesn't convert backslashes into forward slashes.
This is not a mistake, but rather a design decision. This library makes another decision and unifies the behavior between
the two approaches to make it easier to build cross-platform libraries and tools.
MIT © Frederik Wessberg (@FredWessberg) (Website)