npm-install-version
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
$ 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: 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:
const niv = ;const benchmark = ; niv;// installs csjs@1.0.0 to node_modules/csjs@1.0.0/ niv;// installs csjs@1.0.1 to node_modules/csjs@1.0.1/ const csjs_old = niv;const csjs_new = niv;// require the old and new versions of csjs ;// run our fake benchmark function on the old and new versions of csjs
Advanced Example
const niv = ; niv;// installs csjs@1.0.0 to node_modules/some-dir/ niv;// doesn't do anything because node_modules/some-dir/ already exists niv;// installs csjs@1.0.1 to node_modules/some-dir/, overwriting the existing install