Back to Pnpm

@pnpm/deps.path

deps/path/README.md

11.0.61.4 KB
Original Source

@pnpm/deps.path

Utilities for working with symlinked node_modules

<!--@shields('npm')-->

<!--/@-->

Like path but for packages in a symlinked node_modules. Symlinked node_modules is a unique dependencies layout that pnpm creates.

Installation

sh
pnpm add @pnpm/deps.path

Usage

<!--/* cspell:disable */--> <!--@example('./example.js')-->
js
const dependencyPath = require('@pnpm/deps.path')

const registry = 'https://registry.npmjs.org/'

console.log(dependencyPath.isAbsolute('/foo/1.0.0'))
//> false

// it is confusing currently because relative starts with /.
// It will be changed in the future to vice versa
console.log(dependencyPath.resolve(registry, '/foo/1.0.0'))
//> registry.npmjs.org/foo/1.0.0

console.log(dependencyPath.relative(registry, 'registry.npmjs.org/foo/1.0.0'))
//> /foo/1.0.0

console.log(dependencyPath.refToAbsolute('1.0.1', 'foo', registry))
//> registry.npmjs.org/foo/1.0.1

console.log(dependencyPath.refToAbsolute('github.com/foo/bar/twe0jger043t0ew', 'foo', registry))
//> github.com/foo/bar/twe0jger043t0ew

console.log(dependencyPath.refToRelative('1.0.1', 'foo', registry))
//> /foo/1.0.1

console.log(dependencyPath.parse('/foo/2.0.0'))
//> { isAbsolute: false, name: 'foo', version: '2.0.0' }
<!--/@--> <!--/* cspell:enable */-->

License

MIT