何时使用shrinkwrap,npm-lockdown或npm-seal

Nat*_*.B. 7 npm npm-shrinkwrap

我来自一个更熟悉的背景composer.我正在gulp等待构建过程和学习node以及如何使用npm.

非常奇怪(再次,来自composer背景)composer.lock默认情况下不包括类似清单.话虽如此,我一直在阅读[shrinkwrap],[npm-lockdown]和[npm-seal]的文档....而且我阅读的文档越多,我就越难以选择(每个人都认为他们的方式是最好的方式).我注意到的一个问题是npm-seal在4年和npm-lockdown8个月内没有改变- 这一切都让我想知道这是否因为最新版本的npm...... 不需要它...

  1. 每个的好处/缺点是什么?
  2. 在什么情况下,我会在项目A中使用一个,而在项目B中使用另一个?
  3. 每个如何影响我们的开发工作流程?

PS:Brownie指出,如果你包括每个的最基本的实现示例.;)

Tom*_*ich 7

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.它增加了"校验和检查"方面.它看起来已经废弃,非常原始.