mirror of
https://github.com/pnpm/pnpm.git
synced 2026-05-01 12:36:29 -04:00
e78ff8a80f2360fea438a3ad0b2c4e9862dbb06f
dependencies-hierarchy
Creates a dependencies hierarchy for a symlinked `node_modules`
A symlinked node_modules is created when installing using pnpm.
Install
Install it via npm.
npm install dependencies-hierarchy
Usage
'use strict'
const hierarchyForPackages = require('dependencies-hierarchy').forPackages
hierarchyForPackages(['graceful-fs', {name: 'pify', range: '2'}], __dirname, {depth: 2})
.then(tree => {
console.log(JSON.stringify(tree, null, 2))
//> [
// {
// "pkg": {
// "name": "write-pkg",
// "version": "3.1.0",
// "path": "registry.npmjs.org/write-pkg/3.1.0"
// },
// "dependencies": [
// {
// "pkg": {
// "name": "write-json-file",
// "version": "2.2.0",
// "path": "registry.npmjs.org/write-json-file/2.2.0"
// },
// "dependencies": [
// {
// "pkg": {
// "name": "graceful-fs",
// "version": "4.1.11",
// "path": "registry.npmjs.org/graceful-fs/4.1.11"
// },
// "searched": true
// },
// {
// "pkg": {
// "name": "pify",
// "version": "2.3.0",
// "path": "registry.npmjs.org/pify/2.3.0"
// },
// "searched": true
// }
// ]
// }
// ]
// }
// ]
})
API
default: dependenciesHierarchy(projectPath, [opts]): Promise<Hierarchy>
Creates a dependency tree for a project's node_modules.
Arguments:
projectPath- String - The path to the project.[opts.depth]- Number - 0 by default. How deep should thenode_modulesbe analyzed.[opts.only]- 'dev' | 'prod' - Optional. If set todev, then only packages fromdevDependenciesare analyzed. If set toprod, then only packages fromdependenciesare analyzed.
forPackages(packageSelectors, projectPath, [opts]): Promise<Hierarchy>
Creates a dependency tree for a project's node_modules. Limits the results to only the paths to the packages named.
Arguments:
packageSelectors- (string | {name: string, version: string})[] - An array that consist of package names or package names and version ranges. E.g.['foo', {name: 'bar', version: '^2.0.0'}].projectPath- String - The path to the project[opts.depth]- Number - 0 by default. How deep should thenode_modulesbe analyzed.[opts.only]- 'dev' | 'prod' - Optional. If set todev, then only packages fromdevDependenciesare analyzed. If set toprod, then only packages fromdependenciesare analyzed.
License
Languages
TypeScript
98.8%
JavaScript
0.8%
Shell
0.4%