NPM在我们的依赖package.json中locking依赖版本

所以我有一个应用程序拉入一些依赖。 我已经想出了如何很容易地locking下来,因此我的Package.json如下所示:

"webpack": "2.2.1", 

大! 所以webpack被locking到那个版本,但是我注意到webpack中的一些东西package.json。 他们不locking他们的依赖关系:

 "dependencies": { "acorn": "^4.0.4", "acorn-dynamic-import": "^2.0.0", "ajv": "^4.7.0", "ajv-keywords": "^1.1.1", "async": "^2.1.2", "enhanced-resolve": "^3.0.0", "interpret": "^1.0.0", "json-loader": "^0.5.4", "loader-runner": "^2.3.0", "loader-utils": "^0.2.16", "memory-fs": "~0.4.1", "mkdirp": "~0.5.0", "node-libs-browser": "^2.0.0", "source-map": "^0.5.3", "supports-color": "^3.1.0", "tapable": "~0.2.5", "uglify-js": "^2.8.5", "watchpack": "^1.2.0", "webpack-sources": "^0.2.0", "yargs": "^6.0.0" }, 

所以有一天,我们的应用程序分拆了一个容器,并抓住webpack 2.2.1,就像它应该有的,但抓住了最新的uglify-JS导致我们的生产应用程序的问题。

无论如何,强制我们的依赖正在利用的依赖的版本?

npm shrinkwrap是我正在寻找和需要的。