kovpack kovpack - 6 months ago 14
Node.js Question

Is it possible to install npm package only if it has not been already installed?

Is it possible to install

npm
package only if it has not been already installed?

I need this to speed up test on CircleCI, but when I run
npm install protractor@2.1.0
etc. it always downloads things and installs them from scracth, however,
node_modules
folder with all modules is already present at the moment of running commands (cached from previous build) and
protractor --version
etc. shows the needed version of the package.

Its perfect to have some one-line command like this:

protractor --version || npm install -g protractor@2.1.0


but the one that will also check version of the package.

Answer

with bash you can do

[ $(node -p "require('protractor/package.json').version") != "2.1.0" ] && npm install protractor@2.1.0