公司介绍
Yarn 是 Facebook(现 Meta)于 2016 年开源的 JavaScript 包管理器,由 Sebastian McKenzie、Yehuda Katz 等核心开发者创建。它以速度、可靠性和安全性为核心目标,成为 npm 之外最主流的 JavaScript 依赖管理工具之一。Yarn 采用 BSD 开源许可证。
Yarn 经历了两代架构演进:Yarn Classic(v1)是经典的缓存并行安装模式;Yarn Berry(v2/v3/v4)引入了 Plug'n'Play(PnP)零安装机制,彻底改变了 Node.js 模块解析方式。
核心产品
| 产品 | 说明 |
|---|---|
| Yarn Classic (v1) | 经典版本,基于缓存+并行安装,兼容 npm 生态 |
| Yarn Berry (v2/v3/v4) | 新一代架构,支持 Plug'n'Play(PnP)零安装模式 |
| Yarn Plug'n'Play | 无需 node_modules 的模块解析方案,提升安装与加载速度 |
| Yarn Workspaces | Monorepo 工作空间管理,支持多包仓库统一管理依赖 |
| Yarn Constraints | 依赖约束引擎,确保 Monorepo 中依赖版本一致性 |
| Yarn SDK | IDE 开发工具集成,支持 TypeScript、ESLint 等工具链 |
| Yarn PnPify | 将任意工具链适配到 PnP 模式的桥接工具 |
核心优势
- 速度:并行下载与离线缓存机制,安装速度远超 npm
- 可靠性:yarn.lock 锁文件确保跨环境依赖版本完全一致
- 安全:完整性校验与签名验证,防止恶意包篡改
- PnP 零安装:Yarn Berry 的 PnP 模式消除 node_modules 瓶颈
- Workspaces:原生 Monorepo 支持,简化多包项目管理
发展历程
- 2016 年:Facebook 发布 Yarn v1,迅速获得社区广泛采用
- 2017 年:Yarn 加入 OpenJS Foundation,成为中立于厂商的开源项目
- 2020 年:Yarn Berry(v2)发布,引入 Plug'n'Play 架构
- 2021 年:Yarn v3 发布,进一步优化 PnP 与 Workspaces 体验
- 2023 年:Yarn v4 发布,引入 Constraints 引擎与 SDK 集成
- 2026 年:持续迭代,保持 JavaScript 包管理器生态的核心地位
市场地位
Yarn 在 JavaScript 包管理器市场与以下工具构成竞争关系:
- npm:Node.js 官方包管理器,生态最广,安装速度较慢
- pnpm:基于内容寻址的硬链接方案,磁盘效率优于 Yarn Classic
- Bun:新一代 JavaScript 运行时,内置包管理器安装速度极快
- Deno:兼容 npm 包的新一代运行时,提供实验性包管理能力