yarn.lock和npm的收缩包装有什么区别?

yarn.lock和npm的收缩包装有什么区别?,第1张

yarn.lock和npm的收缩包装有什么区别?

yarn.lock
文件与其他程序包管理器的锁定文件非常相似,尤其是Rust的Cargo程序包管理器具有
Cargo.lock
。这些锁定文件的想法是代表一组始终有效的软件包

npm
依赖关系范围存储在
package.json
文件中,这意味着当有人安装您的软件包时,他们可能会获得与您不同的依赖关系集,因为您可能正在运行过时的软件包(尽管它们仍然满足您指定的依赖关系范围)。例如,某人指定了dependency
"foo": "^1.0.0"
。他们可能实际上已经安装了foo v1.0.1,因为这是他们运行时的最新
npminstall
版本,但是后来,有人安装了您的软件包并获得了依赖项foo v1.1.0。这可能会意外破坏某些内容,如果您有一个
yarn.lock
保证
一致的包解析度 的文件,可以避免这种情况。

至于与的比较

npm shrinkwrap
,文档非常清楚地说明了这一点:

它类似于npm的npm-shrinkwrap.json,但是它不是有损的,并且可以产生可重复的结果。

该文档还建议

yarn.lock
您提交到存储库(如果您尚未这样做的话),这样您就可以从一致且可重复的包解析中受益。

的有损行为

npm shrinkwrap
是由于其
npm
自身使用的不确定性算法;作为另一个答案的评论指出,
npm shrinkwrap
>
npminstall
>
npmshrinkwrap
并不能保证产生输出作为刚刚shrinkwrapping一次,而纱线明确地使用相同“的安装算法是确定的,可靠的”。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5088156.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存