An open API service indexing awesome lists of open source software.

https://github.com/imsnif/nmtree

Get a (flat) tree representation of the modules in your node_modules folder
https://github.com/imsnif/nmtree

javascript nodejs npm-package npm-scripts

Last synced: over 1 year ago
JSON representation

Get a (flat) tree representation of the modules in your node_modules folder

Awesome Lists containing this project

README

          

# nmtree

[![Build Status](https://travis-ci.org/imsnif/nmtree.svg?branch=master)](https://travis-ci.org/imsnif/nmtree) [![Coverage Status](https://coveralls.io/repos/github/imsnif/nmtree/badge.svg?branch=master)](https://coveralls.io/github/imsnif/nmtree?branch=master) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

Get a node_modules directory with all its `package.json` files as a parsable flat tree.

![alt text](https://github.com/imsnif/nmtree/raw/master/docs/tty.gif )

### what is this?
Given an npm library, this tool would recursively go through its `node_modules` and create a flat tree with the paths of libraries as keys and their parsed `package.json` files as values.
eg.
```javascript
{
"myLib": ,
"myLib/node_modules/myDep": ,
"myLib/node_modules/myDep/node_modules/myOtherDep":
}
```
### install
`npm install -g nmtree` - for the cli tool

`npm install nmtree` for the `require`-able library

### usage
```javascript
const nmtree = require('nmtree')

const libPath = '/path/to/my/lib'
const tree = nmtree(libPath)

const installedReactVersions = Object.keys(tree).reduce((versions, libPath) => {
const { name, version } = tree[libPath]
if (name === 'react') versions.push(version)
return versions
}, [])
// or whatever else you can think of!
```

### command line usage
```
nmtree /path/to/my/lib > my-lib-node-modules.json
```

### License
MIT