在使用npm时,我没有遇到问题,当依赖树深处的某个包接收到次要甚至补丁更新,但实际上引入了一个重大变化。找到罪魁祸首并不总是那么容易。而且大多数情况下问题最严重,因为它经常执行干净的 npm install 。所以剩下的就是等待一两天,直到包裹作者发现并修复错误。
使用package.json中的确切版本并不会有帮助,因为引用的包具有它们自己的依赖关系,并且它们并不总是用精确版本指定。
这种突破性变化是我生活中的一个事实,因为没有人能够免于错误,并且在任何比琐碎项目更直接和间接使用的剪切数量都是巨大的。
那么,如何防止这种不可避免的突破性变化扰乱开发过程呢?
我唯一可以想象的是npm的假设功能,它只允许安装不小于now().addDays(-2)
的包。
答案 0 :(得分:0)
如果创建并提交到源代码控制,则package-lock.json
(npm5)或npm-shrinkwrap.json
(npm 2-4)将锁定所有依赖项及其依赖项,以便完全相同的版本安装。现在自动生成package-lock.json
,并且可以使用npm-shrinkwrap.json
命令创建npm shrinkwrap
。创建这些文件后,它们将在后续的npm install --save ...
命令中自动更新。