You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
2.4 KiB
62 lines
2.4 KiB
2 years ago
|
# pathe
|
||
|
|
||
|
> Normalized paths for Node.js
|
||
|
|
||
|
[![version][npm-v-src]][npm-v-href]
|
||
|
[![downloads][npm-d-src]][npm-d-href]
|
||
|
[![size][size-src]][size-href]
|
||
|
|
||
|
🧪 This package is still experimental and might not handle all cases. Please track issues.
|
||
|
|
||
|
## ❓ Why
|
||
|
|
||
|
For [historical reasons](https://docs.microsoft.com/en-us/archive/blogs/larryosterman/why-is-the-dos-path-character), windows followed MS-DOS
|
||
|
and using backslash for separating paths rather than slash used for macOS, Linux, and other Posix operating systems. Nowadays, [Windows](https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file?redirectedfrom=MSDN) supports both Slash and Backslash for paths.
|
||
|
|
||
|
[Node.js's built in `path` module](https://nodejs.org/api/path.html) in the default operation of the 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 path module will assume that Windows-style paths are being used. **This makes inconsistent code behavior between Windows and POSIX.**
|
||
|
|
||
|
This package is a drop-in replacement of the Node.js's `path` module and ensures paths are normalized with slash `/`.
|
||
|
|
||
|
Compared to popular [upath](https://github.com/anodynos/upath), pathe is providing **identical exports** of Node.js with normalization on **all operations** and written in modern **ESM/Typescript**.
|
||
|
|
||
|
## 💿 Install
|
||
|
|
||
|
Install using npm or yarn:
|
||
|
|
||
|
```bash
|
||
|
npm i pathe
|
||
|
# or
|
||
|
yarn add pathe
|
||
|
```
|
||
|
|
||
|
Import:
|
||
|
|
||
|
```js
|
||
|
// ESM / Typescript
|
||
|
import { resolve } from 'pathe'
|
||
|
|
||
|
// CommonJS
|
||
|
const { resolve } = require('pathe')
|
||
|
```
|
||
|
|
||
|
Read more about path utils from [Node.js documentation](https://nodejs.org/api/path.html) and rest assured behavior is ALWAYS like POSIX regardless of your input paths format and running platform!
|
||
|
|
||
|
## License
|
||
|
|
||
|
MIT. Made with 💖
|
||
|
|
||
|
Some code used form Node.js project. See [LICENSE](./LICENSE).
|
||
|
|
||
|
<!-- Refs -->
|
||
|
[npm-v-src]: https://img.shields.io/npm/v/pathe?style=flat-square
|
||
|
[npm-v-href]: https://npmjs.com/package/pathe
|
||
|
|
||
|
[npm-d-src]: https://img.shields.io/npm/dm/pathe?style=flat-square
|
||
|
[npm-d-href]: https://npmjs.com/package/pathe
|
||
|
|
||
|
[github-actions-src]: https://img.shields.io/github/workflow/status/unjs/pathe/ci/main?style=flat-square
|
||
|
[github-actions-href]: https://github.com/unjs/pathe/actions?query=workflow%3Aci
|
||
|
|
||
|
[size-src]: https://packagephobia.now.sh/badge?p=pathe
|
||
|
[size-href]: https://packagephobia.now.sh/result?p=pathe
|