Home

Awesome

npm-consider

Check npm package dependencies size, licenses and impact on your package before installing it 🤔

npm-consider

If you like it, please, ⭐️ this repo!

Build Status

Features

Installing

npm install -g npm-consider

Note: this tool is more useful when your colleagues also use it 😉

Usage

Add new dependency

npm-consider has similar arguments as npm install

npm-consider install --save express

The command recursively requests packages info from npm and builds dependencies graph. Size of the package determined via HEAD request to tarball download URL.

Analyze local package

When called without arguments in package directory it builds a dependency graph and calculates metrics for local package

npm-consider install

Using for automation and continuous integration

You can specify maximum values of size and number as well as allowed license types in config of your package.json.

"config": {
  "maxPackagesNumber": 100,
  "maxSizeBites": 840400,
  "allowedLicenseTypes": [
    "permissive",
    "publicDomain",
    "uncategorized"
  ]
}

Once provided you can call

npm-consider install --test

npm-consider

If all limits are satisfied command will exit with code=0; otherwise code=1.

Note: in this mode, npm-consider will not call npm install or yarn install.

Supported properties:

Supported types are publicDomain, permissive, weaklyProtective, protective, networkProtective, uncategorized. If you are not sure which license types are appropriate check this artice.

Usage with yarn

If the project contains yarn.lock file, then npm-consider will do yarn add with corresponding options.

Licence type

npm-consider calculates license type for every dependency. The type defines license policy for linking as a librtary. Data collected from Comparison of free and open-source software licenses on Wikipedia.

Note: that even permissive licenses have some restrictions. Check the following slide and article to learn about license compatibility:

The Free-Libre / Open Source Software (FLOSS) License Slide

Menu options