/module-tree

Create a visual tree of module dependencies. Optionally pass a glob pattern to limit the result to names with that pattern, or a regex to highlight specific packages.

Primary LanguageJavaScriptMIT LicenseMIT

module-tree NPM version Build Status

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

Install globally with npm

$ npm install -g module-tree

Usage

$ 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
...

CLI options

  • --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.

--version

Show versions next to package names.

$ tree -v

Results in something like:

screen shot 2016-03-19 at 4 21 51 am

--color

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:

screen shot 2016-03-19 at 4 23 52 am

Example

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

API

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-object
  • options {Object}
  • returns {Object}

Related projects

normalize-pkg: Normalize values in package.json. | homepage

Generate docs

Generate readme and API documentation with verb:

$ npm install verb && npm run docs

Or, if verb is installed globally:

$ verb

Running tests

Install dev dependencies:

$ npm install -d && npm test

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

Author

Jon Schlinkert

License

Copyright © 2016 Jon Schlinkert Released under the MIT license.


This file was generated by verb, v0.9.0, on March 19, 2016.