Nth Permutation Mathematics

    @aminya/group-dependencies

    0.2.2 • Public • Published

    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.

    1. In your development environment, let npm manage installing your dev dependencies.
    2. 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.

    Keywords

    none

    Install

    npm i @aminya/group-dependencies

    DownloadsWeekly Downloads

    22

    Version

    0.2.2

    License

    ISC

    Unpacked Size

    11.2 kB

    Total Files

    9

    Last publish

    Collaborators

    • avatar