# npm-install-version

> Installs node modules to versioned or custom directories.

Latest version **6.0.2** (published 2017-05-03) · MIT license · 0 weekly downloads

## Install

```sh
npm install npm-install-version
pnpm add npm-install-version
yarn add npm-install-version
bun add npm-install-version
```

Provides the commands `niv`, `npm-install-version`.

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned.

## Facts

| | |
|---|---|
| Version | 6.0.2 |
| Published | 2017-05-03 |
| First published | 2016-06-13 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 6 |
| Known vulnerabilities | 0 (+7 in 2 direct dependencies) |
| Install scripts | yes |
| GitHub stars | 55 |
| Author | Scott Hardy |
| Maintainers | scott113341 |
| Keywords | npm, install, multiple, versions |

## Links

- npm: https://www.npmjs.com/package/npm-install-version
- Repository: https://github.com/scott113341/npm-install-version
- Issues: https://github.com/scott113341/npm-install-version/issues
- npm.io page: https://npm.io/package/npm-install-version

## Dependencies (6)

- [npm](https://npm.io/package/npm.md) ^4.0.3
- [deasync](https://npm.io/package/deasync.md) ^0.1.9
- [shelljs](https://npm.io/package/shelljs.md) ^0.7.5
- [minimist](https://npm.io/package/minimist.md) ^1.2.0
- [postinstall-build](https://npm.io/package/postinstall-build.md) 2.1.3
- [sanitize-filename](https://npm.io/package/sanitize-filename.md) ^1.6.1

## Recent versions

- 6.0.2 (latest) — 2017-05-03
- 5.0.0-3 (pre-release) — 2016-07-02
- 6.0.1 — 2016-12-16
- 6.0.0 — 2016-12-12
- 5.1.0 — 2016-10-16
- 5.0.9 — 2016-09-02
- 5.0.8 — 2016-08-11
- 5.0.7 — 2016-08-11
- 5.0.6 — 2016-08-11
- 5.0.5 — 2016-07-08
- 5.0.4 — 2016-07-06
- 5.0.3 — 2016-07-06
- 5.0.2 — 2016-07-06
- 5.0.1 — 2016-07-06
- 5.0.0 — 2016-07-02
- … 10 more at https://npm.io/package/npm-install-version/versions

## README

# npm-install-version

[![npm-version][npm-version-badge]][npm-version-href]
[![build-status][build-status-badge]][build-status-href]
[![dependencies][dependencies-badge]][dependencies-href]
[![dev-dependencies][dev-dependencies-badge]][dev-dependencies-href]


Installs node modules to versioned or custom directories.

Very useful if you want to use multiple versions of the same package as top-level dependencies.


## CLI Usage

Install globally: `npm install npm-install-version -g`

#### Example Usage

```text
$ niv csjs@1.0.0
# installs csjs@1.0.0 to node_modules/csjs@1.0.0/

$ niv csjs@1.0.0 --destination csjs-v1
# installs csjs@1.0.0 to node_modules/csjs-v1/

$ niv scott113341/csjs#some-branch --overwrite
# installs https://github.com/scott113341/csjs#some-branch to node_modules/scott113341-csjs#some-branch/
# notice how the installation directory is sanitized (the "/" is replaced with a "-")
# overwrites the previously installed version there, which is useful if I just updated "some-branch"
```

#### Full Usage

```usage
usage: niv <package> [options...]

required:

  package
    the package to be installed
    gets passed directly to "npm install <package>"

optional:

  --destination, -d
    the destination install directory inside node_modules/
    default: sanitized <package>

  --overwrite, -o
    overwrite if there is already a package at [destination]
    default: false

  --quiet, -q
    suppress informational output
    default: false

  --help, -h
    display this message
```


## Programmatic Usage

Install locally: `npm install npm-install-version --save-dev`

#### Basic Example

Let's say we want to benchmark a few versions of `csjs` against each other:

```javascript
const niv = require('npm-install-version');
const benchmark = require('./some-benchmark-function.js');

niv.install('csjs@1.0.0');
// installs csjs@1.0.0 to node_modules/csjs@1.0.0/

niv.install('csjs@1.0.1');
// installs csjs@1.0.1 to node_modules/csjs@1.0.1/

const csjs_old = niv.require('csjs@1.0.0');
const csjs_new = niv.require('csjs@1.0.1');
// require the old and new versions of csjs

benchmark([csjs_old, csjs_new], 'some-test-input');
// run our fake benchmark function on the old and new versions of csjs
```

#### Advanced Example

```javascript
const niv = require('npm-install-version');

niv.install('csjs@1.0.0', { destination: 'some-dir' });
// installs csjs@1.0.0 to node_modules/some-dir/

niv.install('csjs@1.0.1', { destination: 'some-dir' });
// doesn't do anything because node_modules/some-dir/ already exists

niv.install('csjs@1.0.1', { destination: 'some-dir', overwrite: true });
// installs csjs@1.0.1 to node_modules/some-dir/, overwriting the existing install
```


[npm-version-badge]: https://img.shields.io/npm/v/npm-install-version.svg?style=flat-square
[npm-version-href]: https://www.npmjs.com/package/npm-install-version

[build-status-badge]: https://img.shields.io/travis/scott113341/npm-install-version/master.svg?style=flat-square
[build-status-href]: https://travis-ci.org/scott113341/npm-install-version/branches

[dependencies-badge]: https://img.shields.io/david/scott113341/npm-install-version.svg?style=flat-square
[dependencies-href]: https://david-dm.org/scott113341/npm-install-version#info=dependencies

[dev-dependencies-badge]: https://img.shields.io/david/dev/scott113341/npm-install-version.svg?style=flat-square
[dev-dependencies-href]: https://david-dm.org/scott113341/npm-install-version#info=devDependencies

---
_Source: https://npm.io/package/npm-install-version · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
