Facebook发布JavaScript包管理器Yarn 1.0
极客时间编辑部
讲述:丁婵大小:1.15M时长:02:31
近日,Facebook 在官方网站上正式发布了 JavaScript 包管理 Yarn 1.0。从诞生至今的 11 个月里,Yarn 拥有了大批的追随者。GitHub 上有 175,000 个项目在使用 Yarn,每个月通过 Yarn 下载的包数量接近 30 亿个。
Yarn 为广大用户节省了大量的时间,Twitter 和微软都表示他们的包安装速度因此提升了 5 倍,Expo、Kenzan 和 Sentry 则表示性能和稳定性的提升加快了他们的代码交付速度。Yarn 在 Facebook 内部也得到了广泛的采用,包括 Facebook 主应用、Instagram、Oculus 和 WhatsApp 等。
Yarn 具有极佳的伸缩性,可以支持成千上万个直接或间接的包依赖,它的设计初衷就是要保证稳定性、弹性和高性能。基于这些原则,Yarn 1.0 带来了更多的新特性,希望能够帮助 Yarn 社区更快地发展,构建更好的项目。其中,最主要的新特性有以下 3 点。
1.Yarn 工作区(workspace)
单体仓库(mono repository)模式(方便跨项目共享代码,同时避免依赖同步问题)如今已经被大型的科技公司所采用,也正逐渐蔓延到开源社区和一些小型公司。为了让人们更方便地采用该模式,Yarn 增加了一个新特性——工作区。工作区可以自动从多个 package.json 中收集所有的依赖,然后一次性把它们安装完毕。项目根目录下会生成 yarn.lock 来锁住这些文件。如果多个工作区之间存在依赖,Yarn 会为它们创建链接,这样所有的项目就可以共享最新的代码。
2.yarn.lock 自动合并
多个开发者在开发同一个项目时,有可能会更新包依赖,导致 yarn.lock 文件出现冲突。如果只有一两个冲突,那么完全可以通过手动来解决,但如果冲突数量众多,解决冲突就会变成一件很麻烦的事情。Yarn 为此提供了自动合并 yarn.lock 文件的功能。通过运行 yarn install 命令就可以触发合并动作,如果合并成功,新的 yarn.lock 就会被保存到磁盘上。
3. 可选择依赖版本(selective version resolution)
有时候,开发者的项目间接依赖了其他项目的包,当这些依赖包有了新的版本之后,开发者也需要更新它们的新功能。Yarn 提供了可选择依赖版本的新特性,通过在 package.json 文件里定义 resolutions 字段来告诉 Yarn 该使用哪个版本的依赖包。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论