
Security News
Axios Maintainer Confirms Social Engineering Attack Behind npm Compromise
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.
cnpm-install-version
Advanced tools
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.
Install globally: npm install npm-install-version -g
$ 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"
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
Install locally: npm install npm-install-version --save-dev
Let's say we want to benchmark a few versions of csjs against each other:
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
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
FAQs
Installs node modules to versioned or custom directories.
The npm package cnpm-install-version receives a total of 1 weekly downloads. As such, cnpm-install-version popularity was classified as not popular.
We found that cnpm-install-version demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

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.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.