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.
with bash you can do
You could try
npm list protractor || npm install protractor@2.1.0
Where
npm list protractor
is used to findprotractor
package.If the package is not found, it will return
npm ERR! code 1
and donpm install protractor@2.1.0
for installationFunction version of the excellent answer by @JeromeWAGNER:
Use like:
To pass additional options to
npm
, specify them after the version, like so:I had this same issue together with wanting to install global dependencies from any "package.json" file requiring them.
This is for a Windows development environment.
Here is my solution.