热门搜索: 小说 摆渡人 精彩

社论:我们正在走向包装经理疲劳吗?

[复制链接]
发表于 2024-2-14 16:25:33 | 显示全部楼层 |阅读模式
127 0
Facebook 上周宣布推出新的 JavaScript 包管理器 Yarn,引起了巨大轰动。当我第一次听到这个消息时,您的第一反应可能与我的反应类似:我们最不需要的不是另一个包管理器吗?!看起来,尽管看似永无止境的新框架不断涌现,JavaScript 社区至少还是选择了 npm 作为事实上的包管理器。 但是等等,在你在 Twitter 或博客上谴责包管理器疲劳之前,Yarn 实际上并没有那么糟糕。首先,Yarn 并不是一个新的包存储库:它更像是 npm 客户端的直接替代品,旨在改进 npm 的一些缺点。作为额外的好处,它不仅可以与 npm 包配合使用,还支持 Bower!更改为包含 package.json 或 Bower.json 文件的项目文件夹,运行yarn,然后就可以开始工作了。 “好吧,但我不使用 Bower,那我为什么要改用 Yarn?”我听到你问。

Yarn 团队构建它是为了解决在 Facebook 内部项目中使用 npm 时遇到的速度、可靠性和安全性问题。为了实现这一点,Yarn 生成一个锁定文件,帮助它准确跟踪每个依赖项的解决方式。 Learn to Code with JavaScript 锁定文件的好处之一是加快安装时间。到目前为止,我已经看 赌号数据 到了一些关于它有多大区别的不同说法(以及在某些情况下,它是否有任何区别),但是这里对 Yarn 和 npm 之间有一些非常有趣的比较。 Yarn 所做的另一件事是保留下载包的缓存,从而使重新安装速度极快。这也意味着它们可以离线完成。 另一个重要的考虑因素是确保项目可以以可预测的方式安装在不同的机器上。 Yarn 在确定需要哪些依赖项时使用确定性算法,以序安装。这可以避免 npm 有时会出现潜在的难以调试的错误。



Yarn 还提高了安装过程的可靠性。失败的依赖项请求将排队等待重试,而不是中止安装。请求队列被智能处理以并行化请求并最大限度地减少下载时间。 如果您确实想简化项目,Yarn 提供了执行平面安装的选项。您的项目中可能有多个依赖于特定库的不同版本的包。通过选择平面安装,Yarn 将提示您多个版本中所需的每个软件包,并允许您手动选择要安装的版本,从而避免需要在不同版本上安装多个副本。 值得深入研究CLI 文档,因为还有一些其他有趣的命令可用。运行会让你知道为什么安装特定的包、它占用了多少空间以及它使用了多少共享依赖项。yarn clean仍处于实验阶段,但会尝试从 node_modules 文件夹中删除不需要的文件并回收一些磁盘空间。

回复

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝0

帖子10

发新帖子

精彩资讯

阅读排行

优秀作品