我来自一个更熟悉的背景composer
.我正在gulp
等待构建过程和学习node
以及如何使用npm
.
非常奇怪(再次,来自composer
背景)composer.lock
默认情况下不包括类似清单.话虽如此,我一直在阅读[shrinkwrap],[npm-lockdown]和[npm-seal]的文档....而且我阅读的文档越多,我就越难以选择(每个人都认为他们的方式是最好的方式).我注意到的一个问题是npm-seal
在4年和npm-lockdown
8个月内没有改变- 这一切都让我想知道这是否因为最新版本的npm
...... 不需要它...
每个的好处/缺点是什么?
在什么情况下,我会在项目A中使用一个,而在项目B中使用另一个?
每个如何影响我们的开发工作流程?
PS:Brownie指出,如果你包括每个的最基本的实现示例.;)
npm shrinkwrap
是如何锁定依赖项的最标准方法.是的,npm install
默认情况下不创建它是一个遗憾,这是npm创作者肯定应该改变的东西.
npm-lockdown
尝试做同样的事情npm shrinkwrap
,有两个小点npm-lockdown
更好:它更好地处理可选的依赖关系并验证包的校验和:
https://www.npmjs.com/package/lockdown#related-tools
这些功能对我来说似乎并不那么重要; 我很满意npm shrinkwrap
:例如,npmjs保证一旦你在某个版本上传某个包,它就会保持不变 - 所以检查sha校验和不是那么热(我从未遇到过由此引起的错误).
seal
意在与...一起使用npm shrinkwrap
.它增加了"校验和检查"方面.它看起来已经废弃,非常原始.