技术丨微软工程师浅谈时下最火的包管理工具Yarn

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 握手包跑包

各位好 又见面了 我是曹操 今天给大家带来一篇新的教程

希望各位细心学习 低调用网

跑包工具跑包工具

Yarn是一个毛线球的名称,对于猫奴们来说,这个名字确实很厉害。在IT圈中,本来有一个名为Yarn的项目,即Yet-Another-Resource-Negotiater,是Apache的一个集群管理项目(尽管最后一个单词的拼写是错误的)。然而,为什么Facebook的项目非要选择一个相同的名字呢?当您打开主页时,一切就明了了,Yarn的本意是毛线球,而这个开发团队显然受到了喵星人的控制!如果没有意外,下一个项目可能会是小鱼干。

跑包工具跑包工具跑包工具跑包工具

然而,尽管这个项目的命名随意,它确实让当前最热门的JavaScript包管理工具npm感到恐慌。Yarn于今年10月11日发布,声称要完美替代npm的某些功能,具体来说就是替代npm install,这是一个用于下载和安装包的命令。简而言之,从现在开始,npm将成为安装Yarn的最佳包管理工具!

跑包工具

npm当天发表了一篇文章回应,感谢Yarn及其开发者对npm registry做出的贡献。毕竟,npm install确实存在许多问题,Yarn的出现对整个JavaScript包管理生态系统都有很大的好处。在这一点上,我们要为npm的公关工作点赞,他们在短短几个小时内做出了出色的回应,至少没有花钱在纽约时报上教训Facebook如何做人。

跑包工具

►大型JavaScript项目包管理需要Yarn,就像小猫需要毛线球

这个副标题真是翻译得太到位了!Yarn的开发动力来自于Facebook程序员的需求。在Facebook开发React的过程中,npm的包安装功能暴露出了许多问题,主要有两个方面。首先,安装时间太长,npm install的默认行为是没有任何本地缓存的,换句话说,每个需要下载的包都是从互联网上下载的。您可能认为JavaScript项目的依赖关系不会很多,但实际上,像React Native这样的项目,依赖关系有68个,安装的文件多达121,358个。其次,npm install的安装过程是不确定的,即相同的依赖关系在不同的机器上可能会安装不同的依赖树。尽管npm声称这不会影响构建过程,但实际上,这种不确定性导致了许多关于“我胸大我代码能跑,你长得丑代码就不跑”的流言蜚语。在尝试了许多改进npm install的方法后,Facebook决定自己编写一个包管理项目,并引起了很大的轰动。这表明Facebook非常重视基础设施,因为工欲善其事必先利其器。尽管在许多项目经理看来,这个项目可能有些大材小用,但是一旦解决了npm的问题,你就可以摆脱npm了!

►送快递(package)的老司机 — 更快,更安全,更稳定,更多emoji

既然我们了解了npm的不足之处,Yarn的开发自然会着重改进这些问题。在速度方面,通过使用机器上的缓存和并行处理,Yarn比npm有明显的提升。如果您想了解更多数据,请点击这里进行评估。Yarn会在执行代码之前使用checksum来验证文件的完整性,从而确保项目更安全。而针对npm的不确定性问题,Yarn通过使用lockfile和一套确定性算法来确保每次安装的结果都是相同的。值得一提的是,npm也有类似的功能,即shrinkwrap,但需要开发者自己编写lockfile,非常不便于维护。至于emoji,很多命令行界面(CLI)软件都喜欢使用一些可爱的东西,比如ASCII艺术等,而Yarn的emoji就是其中之一。

跑包工具

如果您只看到以上几点,可能不会理解为什么npm会如此惊慌。因为这些优点在小型项目上并不明显,而npm作为npm registry上的“原生”包管理器,与Yarn相比具有巨大的优势。所以,“为什么我要再多跑一条npm install -g yarn?”、“那么我现在正在进行的项目怎么办?”、“为什么我要学习一套新的命令?”是合理的疑问。是的,因为您只需要运行这两条命令,您现有的项目就可以开始使用Yarn进行管理了。而与npm几乎完全重合的命令,也使您可以轻松获得一套emoji。顺便说一句,安装速度更快,更安全,更稳定。

►总结

到目前为止,大家对Yarn都是赞不绝口。确实,Yarn充分强调了npm的不足之处。而我认为真正让Yarn成为杀手级工具的是它与npm的完美兼容性和无需太多麻烦的使用方式。

赞(0)