Yarn:曾经改变前端生态的包管理器
文章目录Yarn曾经改变前端生态的包管理器解决的问题很具体三个核心卖点值得一提的功能历史地位现在还该用吗Yarn曾经改变前端生态的包管理器Yarn 是 Facebook 在 2016 年发布的 JavaScript 包管理工具Star 数超过 4.1 万。在那个 npm 还不够快、不够稳的年代Yarn 的出现直接改变了前端开发者的日常工作流。解决的问题很具体当年 npm 有两个大毛病安装慢且不确定。同样的 package.json不同机器装出来的依赖树可能不一样。这在团队协作和 CI/CD 环境里是灾难。Yarn 用 lockfile 机制解决了这个问题。第一次安装后生成 yarn.lock之后所有人、所有机器都按这个文件装结果完全一致。三个核心卖点快。Yarn 会缓存每个下载过的包第二次安装直接走本地缓存。同时几乎所有操作都是并发的网络利用率拉满。稳。确定性算法加上 lockfile保证任何一台机器上能跑的安装在另一台机器上也能跑。安全。每个包安装前都会校验 checksum防止被篡改。这在供应链攻击频发的今天看是常识但在 2016 年算是领先理念。值得一提的功能离线模式装过一次的包断网也能再装。这对网络环境不稳定或者需要频繁重建环境的场景很有用。扁平化依赖遇到不同版本的同一依赖Yarn 会尽量解析到同一个版本减少 node_modules 的体积。当年 node_modules 嵌套太深是被吐槽最多的问题之一。网络容错单个请求失败不会拖垮整个安装流程自动重试机制保证成功率。历史地位Yarn 1.x 的成功倒逼 npm 进步。npm 后来加入了 package-lock.json性能也优化了不少。某种程度上说Yarn 推动了整个 Node.js 生态的包管理水平。不过这个仓库现在主要是维护状态。Yarn 的新版本3.x 及以后在另一个仓库开发功能和架构都有大改动引入了 PnP 等新机制。1.x 版本目前只接受安全修复。现在还该用吗如果是新项目直接用 npm 或者新版 Yarn 都行差异没以前那么大了。但如果项目里已经有 yarn.lock没必要特意迁移稳定就好。对于从那个年代过来的前端开发者Yarn 算是一个时代的符号。它证明了一件事当现有工具不够好时造一个更好的轮子是有价值的。是一个时代的符号。它证明了一件事当现有工具不够好时造一个更好的轮子是有价值的。