guyellis/packcomp

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# packcomp

[![Greenkeeper badge](https://badges.greenkeeper.io/guyellis/packcomp.svg)](https://greenkeeper.io/)

[![Dependency Status](https://david-dm.org/guyellis/packcomp.svg)](https://david-dm.org/guyellis/packcomp)
[![Code Climate](https://codeclimate.com/github/guyellis/packcomp/badges/gpa.svg)](https://codeclimate.com/github/guyellis/packcomp)

Compare the `dependencies` and `devDependencies` keys (sections) from
two or more `package.json` files.

# Install

`npm install packcomp -g`

# Usage

`packcomp <package.json #1> <package.json #2> [<package.json #3>...]`

If the version number is not identical or missing in one of the packages then it will
be reported. If it is identical in all packages then it will be ignored and skipped
(i.e. no output).

The package.json files can be relative paths to local files or URLs that will return a
package.json object or a mixture of both.

# Examples

```shell
packcomp . ../other-repo1 ../other-repo2

packcomp ../path/to/package/file/ https://<somedomain.com>/<some-path>/package.json
```

# Example Output

```
Dependencies:
Module         Repo #1   Repo #2   Repo #3
-------------  --------  --------  -----------------
console.table  ^0.4.0    missing   missing
debug          ^2.2.0    ^2.2.0    2.1.3
lodash         ^3.9.3    ^3.9.1    3.8.0
minimist       ^1.1.1    ^1.1.1    missing
randomstring   missing   ^1.0.5    missing
request        missing   ^2.55.0   missing
async          missing   missing   0.9.0
node-cache     missing   missing   2.1.1
redis          missing   missing   0.12.1


DevDependencies:
Module               Repo #1   Repo #2   Repo #3
-------------------  --------  --------  -----------------
eslint               ^0.22.1   ^0.21.1   ^0.20.0
chai                 missing   ^2.3.0    missing
istanbul             missing   ^0.3.13   ^0.3.13
mocha                missing   ^2.2.4    ^2.2.4
npm-update-outdated  missing   ^0.1.4    ^0.1.4
pre-commit           missing   ^1.0.6    ^1.0.6
sinon                missing   ^1.14.1   ^1.14.1  
```

# Filter Example

```shell
packcomp -f 'n*' . ../other-repo1 ../other-repo2
```

# Filtered Example Output

```
Dependencies:
Module         Repo #1   Repo #2   Repo #3
-------------  --------  --------  -----------------
node-cache     missing   missing   2.1.1


DevDependencies:
Module               Repo #1   Repo #2   Repo #3
-------------------  --------  --------  -----------------
npm-update-outdated  missing   ^0.1.4    ^0.1.4
```

# Pivot Example

```shell
packcomp --p . ../other-repo1 ../other-repo2
```

# Pivot Example Output
```
Dependencies:
Repo     console.table  debug   lodash  minimist
-------  -------------  ------  ------  --------
Repo #1  ^0.4.0         ^2.2.0  ^3.9.3  ^1.1.1
Repo #2  missing        ^2.2.0  ^3.9.1  ^1.1.1
Repo #3  missing        2.1.3   3.8.0   missing

DevDependencies:
Repo     eslint   chai     istanbul  mocha  
-------  -------  -------  --------  -------
Repo #1  ^0.22.1  missing  missing   missing
Repo #2  ^0.21.1  ^2.3.0   ^0.3.13   ^2.2.4
Repo #3  ^0.20.0  missing  ^0.3.13   ^2.2.4
```