Create a visual tree of module dependencies using archy. Optionally pass a glob pattern to limit the result to names with that pattern, or a regex to selectively highlight package names.
Install globally with npm
$ npm install -g module-tree
$ tree <options>
Results in a tree that looks something like:
module-tree
├─┬ ansi-yellow
│ └── ansi-wrap
├── archy
├─┬ define-property
│ └─┬ is-descriptor
│ ├─┬ is-accessor-descriptor
│ │ └─┬ kind-of
│ │ └── is-buffer
│ ├─┬ is-data-descriptor
│ │ └─┬ kind-of
│ │ └── is-buffer
│ ├─┬ kind-of
│ │ └── is-buffer
│ └── lazy-cache
...
--version
|-v
: show versions next to package names (like npm's output when installing modules)--pattern
|-p
: glob pattern to pass to glob-object for filtering packages by name. Visit glob-object for usage instructions and available options.--color
|-c
: Add or remove color.
Show versions next to package names.
$ tree -v
Results in something like:
Remove color
$ tree --color=false
# or
$ tree -c=false
Add color
Only apply coloring to packages that match the given regex pattern (make sure to wrap your pattern in quotes to ensure it's properly converted to regex):
# apply coloring to package names that begin with "is-"
$ tree -c="is-.*"
Results in something like:
When run in this project, the following command:
# remove color, filter package name "get-value"
$ tree -c=false -p="**.get-value"
Results in:
{ label: 'module-tree',
nodes:
[ { label: 'glob-object',
nodes: [ { label: 'get-value', nodes: [] } ] },
{ label: 'normalize-pkg',
nodes:
[ { label: 'map-schema',
nodes:
[ { label: 'get-value', nodes: [] },
{ label: 'union-value',
nodes: [ { label: 'get-value', nodes: [] } ] } ] } ] } ] }
Which renders to:
module-tree
├─┬ glob-object
│ └── get-value
└─┬ normalize-pkg
└─┬ map-schema
├── get-value
└─┬ union-value
└── get-value
The top level export is a function that will build a tree from the current project's package.json:
var pkgTree = require('module-tree');
console.log(pkgTree());
Additionally, the following methods are exposed.
Build an object, where dependencies represented properties and keys are module names.
Params
patterns
{Object}: Glob pattern to pass to glob-object for filtering packages.options
{Object}returns
{Object}
Example
{
'union-value': {
'get-value': {}
}
}
Build an object that can be passed to archy, where dependencies are represented as nodes
, and the name of each package is used as the label
.
Params
tree
{Object}options
{Object}returns
{Object}
Example
// results in an object like this
{ label: 'union-value',
nodes: [ { label: 'get-value', nodes: [] } ] }
Build a tree from module dependencies using archy.
Params
patterns
{String|Array}: Glob patterns to pass to glob-objectoptions
{Object}returns
{Object}
normalize-pkg: Normalize values in package.json. | homepage
Generate readme and API documentation with verb:
$ npm install verb && npm run docs
Or, if verb is installed globally:
$ verb
Install dev dependencies:
$ npm install -d && npm test
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Jon Schlinkert
Copyright © 2016 Jon Schlinkert Released under the MIT license.
This file was generated by verb, v0.9.0, on March 19, 2016.