nmtree
Version:
Get a (flat) tree representation of the modules in your node_modules folder
47 lines (35 loc) • 1.5 kB
Markdown
[](https://travis-ci.org/imsnif/nmtree) [](https://coveralls.io/github/imsnif/nmtree?branch=master) [](https://standardjs.com)
Get a node_modules directory with all its `package.json` files as a parsable flat tree.

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": <myPackageJson>,
"myLib/node_modules/myDep": <depPackageJson>,
"myLib/node_modules/myDep/node_modules/myOtherDep": <otherDepPackageJson>
}
```
`npm install -g nmtree` - for the cli tool
`npm install nmtree` for the `require`-able library
```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!
```
```
nmtree /path/to/my/lib > my-lib-node-modules.json
```
MIT