Conditionally Include Dependency package.json

Let me introduce handpick that lets you target and filter multiple dependencies. I wrote this to speed up CI stages that just need a fragment of the devDependencies but there are eventually more usecases. This project is quite experimental - please leave some feedback.

Installation

Install on your system:

npm install handpick --global

Usage

Run the command:

handpick [options]

-V, --version
-T, --target
-F, --filter
-M, --manager
-P, --path
-h, --help

Examples

Define unofficial dependencies inside package.json file:

{
    "lintDependencies":
    {
        "eslint": "6.8.0",
        "eslint-config-redaxmedia": "2.0.0"
    },
    "testDependencies":
    {
        "chai": "4.2.0",
        "mocha": "7.1.1"
    }
}

Install the lintDependencies:

handpick --target=lintDependencies

Install the devDependencies and lintDependencies via YARN:

handpick --target=devDependencies --target=lintDependencies --manager=yarn

Install the devDependencies without testDependencies:

handpick --target=devDependencies --filter=testDependencies

Install the dependencies and devDependencies within path:

handpick --path=../shared

You can use an optional dependency.

Like this in your package.json:

"optionalDependencies":{
  "grunt-appdmg":"0.2.0"
}

More info on NPM documentation

npm install will then just skip it if it fails.

Tags:

Node.Js

Npm