Nodejs的yarn是什么, 作用是什么, 怎么实现的, 优势是什么, 劣势是什么


大白话系列之:去除Nodejs的yarn的神秘面纱!

Nodejs的yarn是什么, 作用是什么

正确定义:Nodejs的Yarn是由Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具 , 它主要是为了弥补 npm 的一些缺陷而出现的。✔

错误定义:Yarn:Yet Another Resource Negotiator。❌

Yet Another Resource Negotiator 是大数据Hadoop的一个资源调度和管理的解决方案。

Nodejs的yarn怎么实现的

官网:https://yarnpkg.com/

yarn的源码也是开源的

1、第一个发行版本主要是用Javascript实现的

源码地址:https://github.com/yarnpkg/yarn

2、目前的主要发行版本是用Typescript实现的

源码地址:https://github.com/yarnpkg/berry

在开发蜂巢指纹浏览器(NestBrowser)的中期, 都有去git一下yarn的源码翻了一下。

Nodejs的yarn优势是什么, 劣势是什么

优势:

1、速度超快。Yarn 缓存了每个下载过的包, 所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率, 因此安装速度更快。

2、超级安全。在执行代码之前, Yarn 会通过算法校验每个安装包的完整性。

3、超级可靠。使用详细、简洁的锁文件格式和明确的安装算法, Yarn 能够保证在不同系统上无差异的工作。

蜂巢指纹浏览器(NestBrowser)开始都尝试过只使用npm, 后面都转而使用yarn了。

劣势:

1、扁平的node_modules结构允许访问没有引用的package 2、来自不同项目的package不能共享, 这是对磁盘空间的消耗 3、安装缓慢, 大量重复安装node_modules

这些劣势, 在新生代的替代工具中已经解决了, 它就是****pnpm。****预计很快很多项目都会迁移到pnpm。