npm-shrinkwrap.json: Lock down the node_modules tree as well as dependencies and nested dependencies to prevent the package code breaking on other machines.
package-lock.json: Lock down the node_modules tree as well as dependencies and nested dependencies to prevent the package code breaking on other machines.
So, why package-lock.json is created if npm already have the npm-shrinkwrap.json for locking purpose?
Why they created the new package-lock.json file to born the issues of npm version compatibility because developers are already using the npm-shrinkwrap.json?
Any simple, easy and well-explained answer with example?
The idea is definitely for package-lock.json to be the Latest and Greatest in shrinkwrap technology, and npm-shrinkwrap.json to be reserved for those folks who care very much about their libraries having an exact node_modules -- npm-shrinkwrap had some special dependency-behavior settings what package-lock doesn't have now