DEV Community

Discussion on: Have you tried switching it off and on again?

Collapse
 
joshuagilless profile image
Joshua Gilless • Edited

It can get even worse. There was a time at work where we were struggling to get people to all use the same npm version. One of the developers put this in the scripts section of our package.json:

"relock": "rm -rf node_modules/ && rm package-lock.json && npm i"

Collapse
 
dance2die profile image
Sung M. Kim

It sounds like that's the problem npm ci tries to solve

Related to the original response, npm 6 now allows you to run
npm ci
Which deletes the node_modules and installs the exact version mentioned in your lock file. This is a great way to reproduce the exact working copy of your node app.

Collapse
 
joshuagilless profile image
Joshua Gilless

Yeah! It mostly is, but the subtle difference was our package-lock.json files were out of sync. We were just having a hard time getting everyone on the same version of npm, so the package-lock.json files generated by npm install were slightly different. npm ci runs based off of package-lock.json

Thread Thread
 
dance2die profile image
Sung M. Kim

Now I see what you means.

While npm ci tries to make library to be consistent across computers,
relock command installs libraries from clean slate.