Yarn 入门指南:可预期的依赖管理

Yarn 以并行下载、离线缓存与确定性锁文件革新了包管理。本文讲解安装、依赖管理、锁文件机制与现代 Yarn(Berry)的变化。

最佳实践
Web 构建模块与工具协作插画

Yarn 的核心价值是确定性:yarn.lock 锁定完整依赖树,团队与 CI 安装结果一致。常用命令与 npm 对应(yarn add/remove/install)。现代项目建议对比 pnpm 后选择——pnpm 的磁盘效率与严格结构更优。

安装与基础

corepack enable          # Node 16+ 内置的包管理器管理器
corepack prepare yarn@stable --activate

yarn init -y
yarn add lodash
yarn add -D typescript
yarn install
yarn remove lodash
yarn upgrade

依赖管理的确定性

yarn.lock 记录每个包的精确版本与内容哈希——任何机器任何时间装出的依赖树完全一致。CI 用 yarn install --frozen-lockfile 拒绝锁文件漂移。

Yarn Berry(现代版)的变化

Yarn 2+(Berry)引入 PnP(Plug'n'Play):抛弃 node_modules,依赖直接映射到全局缓存——安装更快、更严格。兼容性问题让 PnP 采用有限,多数 Berry 用户用 nodeLinker: node-modules 模式。

与 npm/pnpm 的位置

维度 npm Yarn pnpm
存储特点 常规 node_modules 支持 PnP 或 node_modules 内容寻址存储与链接
磁盘效率 低 低 高
幻影依赖防护 弱 弱 强
Monorepo workspaces workspaces workspaces 最强

常见问题(FAQ)

Q:Yarn Classic(1.x)还能用吗?

维护模式——存量继续,新项目用 Yarn Berry 或直接 pnpm。

Q:Corepack 是什么?

Node 内置的"包管理器版本管理器":package.json 的 packageManager 字段声明版本,corepack 自动切换——团队统一包管理器版本的标准方案。

Q:Yarn 和 pnpm 怎么选?

新项目建议 pnpm(见本系列《PNPM 入门》):磁盘效率与严格依赖结构是实打实的工程优势;Yarn 的 PnP 愿景好但生态摩擦大。


参考文档

本文依据公开文档整理,示例需按项目依赖版本验证;不将文档中的性能描述视为本项目实测结果。

延伸阅读

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台