Socket
Book a DemoInstallSign in
Socket

@aminya/group-dependencies

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aminya/group-dependencies

Allows for specifying specific non-production packages to install, for use in an environment that only installs production variables ie; heroku.

0.2.2
latest
Source
npmnpm
Version published
Maintainers
1
Created
Source

group-dependencies

CircleCI npm version

With group-dependencies, you can group your dependencies in different batches. For exmaple, you can have a "buildDependencies" or "lintDependencies". This is very useful when you don't need to install all the dependencies for a certain task. Using this you can save a lot of time in CI.

For example, put build dependencies in a separate property, buildDependencies, and install only those packages as needed, by adding to "scripts": { "heroku-postbuild": deps install build" } to your package.json.

Installation

You need to install this package globally, if you want to use it on a clean directory:

npm install @aminya/group-dependencies -g

Usage

First, add a new dependencies group to package.json:

{
  ...
  "devDependencies": {
    "intercept-stdout": "^0.1.2",
    "jest": "^20.0.4",
    "strip-color": "^0.1.0"
  },
  // our new group representing testing dependencies
  "testDependencies": [
    "jest"
  ]
  ...
}

Now you can install only the dependencies for this new group:

# This will install jest@^20.0.4:
deps install test

Command

# Install dependencies in the named group
deps install [GROUP_NAME]

Why

npm gives you two groups to specify dependencies (i.e. dev and prod). In the real world, we have multiple dependency environments (e.g. test, build, production, development).

How it works

Any item added to the [GROUP_NAME]Dependencies property will be installed with deps install [GROUP_NAME]. If a matching package is found in devDependencies or dependencies, that version will be installed.

// Here's the part that matters.
"buildDependencies": [
  "webpack",
  "@babel/preset-env"
]

The decision to use this strategy, with an array, was made so that we can leverage a few things.

  • In your development environment, let npm manage installing your dev dependencies.
  • You only need to manage package versions in one location, reducing the overhead.

Behind the scenes, it makes a new package.json, and then uses that for installation. Once the installation is done, it restores the original package.json.

It is also capable of using group-specific lock files, which can speed up the installation process.

FAQs

Package last updated on 17 Sep 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.