$ npm i -S mod-a@1.0.0
$ npm i -S mod-c@1.0.0
$ npm shrinkwrap
$ cat npm-shrinkwrap.json
{
"name": "hoi",
"version": "1.0.0",
"dependencies": {
"mod-a": {
"version": "1.0.0",
"from": "mod-a@1.0.0",
"resolved": "https://registry.npmjs.org/mod-a/-/mod-a-1.0.0.tgz"
},
"mod-b": {
"version": "1.0.0",
"from": "mod-b@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/mod-b/-/mod-b-1.0.0.tgz"
},
"mod-c": {
"version": "1.0.0",
"from": "mod-c@1.0.0",
"resolved": "https://registry.npmjs.org/mod-c/-/mod-c-1.0.0.tgz",
"dependencies": {
"mod-b": {
"version": "2.0.0",
"from": "mod-b@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/mod-b/-/mod-b-2.0.0.tgz"
}
}
}
}
}
#c -> a
$ npm i -S mod-c@1.0.0
$ npm i -S mod-a@1.0.0
$ npm shrinkwrap
$ cat npm-shrinkwrap.json
{
"name": "hoi",
"version": "1.0.0",
"dependencies": {
"mod-a": {
"version": "1.0.0",
"from": "mod-a@1.0.0",
"resolved": "https://registry.npmjs.org/mod-a/-/mod-a-1.0.0.tgz",
"dependencies": {
"mod-b": {
"version": "1.0.0",
"from": "mod-b@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/mod-b/-/mod-b-1.0.0.tgz"
}
}
},
"mod-b": {
"version": "2.0.0",
"from": "mod-b@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/mod-b/-/mod-b-2.0.0.tgz"
},
"mod-c": {
"version": "1.0.0",
"from": "mod-c@1.0.0",
"resolved": "https://registry.npmjs.org/mod-c/-/mod-c-1.0.0.tgz"
}
}
}