I have fixed versions in my package.json - all of my packages look like this:
"dependencies": {
"@apollo/client": "3.6.4",
"bootstrap": "4.6.2",
"graphql": "16.5.0"
}
Note the lack of ^ and ~ from the packages.
But pipeline build stages that previously passed are failing, and I'm trying to run down the cause.
Is there ANY possibility that there could be a code change (specifically in the package-lock.json) of those dependancies, or are they static once they've been published?
The package-lock.json file is intended to make sure that the version that you install in production is EXACTLY the version that you installed (down to the commit sha). You use
npm-cito install the EXACT version, this is typically only used in CI environments.https://www.atatus.com/blog/package-json-vs-package-lock-json/
So the answer is that yes, they can change a little but if you use a lock file and
npm-ciyou won't have to worry about it.We use Renovate to automate upgrades to newer versions, it's much better than
npm upgrade.