Yarn 4.0 正式发布,现代化的软件包管理器


Yarn 正式发布了 4.0 稳定版

Yarn 不仅是现代化的 JavaScript 软件包管理器,还可以作为项目管理工具。无论你是小型项目还是大型单体仓库(monorepos),无论是业余爱好者还是企业用户,Yarn 都能满足你的需求。

与 3.x 相比,Yarn 4.0 引入了不少破坏性变化:

  • 要求 Node.js 18 及更高版本
  • 使用yarn init创建的新项目将不再默认启用 Zero-Install
  • 使用yarn init创建的新项目将使用 Corepack 而非yarnPath
  • 默认引入所有官方插件 (typescript, interactive-tools, ...)
  • yarn workspaces foreach命令的语法略有改动

其他值得关注的变化:

  • 新增 Hardened 模式
  • 实现约束引擎 (JavaScript Constraints)
  • 集成 TypeScript、交互工具
  • 优化 UI
  • ……

此外,4.0 性能方面有了显著提升,其安装速度明显快于 3.6。例如,以下是从冷缓存安装 Gatsby 及其 ~350MiB 依赖树所需时间的差异。

团队表示,性能提升 3 倍的原因是新的软件包元数据缓存大大提高了重复安装的性能:

hyperfine -L v stable,canary --prepare 'rm -rf ~/.yarn/berry/cache' 'cd $(mktemp -d) && yarn init -2 && yarn set version {v} && yarn && yarn add gatsby --mode=skip-build'
Benchmark 1: 3.6.0
Time (mean ± σ): 65.599 s ±2.214 s[User: 82.952 s, System: 8.638 s]
Range (min … max): 62.167 s … 68.277 s10 runs

Benchmark 2: 4.0.0
Time (mean ± σ): 16.724 s ±0.928 s[User: 14.622 s, System: 5.743 s]
Range (min … max): 15.318 s … 18.110 s10 runs

Summary
4.0.0 ran 3.92 ± 0.25 times faster than 3.6.0

团队还提到,从 Yarn 3 到 Yarn 4 经历了多达 53 个候选版本,而迭代新版本的目的是降低 Yarn 的学习曲线,改进用户体验,降低迁移带来的心智影响。


相關推薦

2023-06-16

大、更灵活。 实时协作(RTC):移到了一个单独的软件包 —— jupyter\_collaboration 中,其 1.0.0 版本现已发布。亮点包括支持显示多个游标和选择,以及支持注册新的共享模型类型。 新的扩展管理器:在 JupyterLab 4 中

2022-08-03

pnpm 是一个快速、节省磁盘空间的软件包管理器。它使用一个内容可寻址的文件系统来存储磁盘上所有模块目录的所有文件。当使用 npm 或 Yarn 时,如果你有 100 个使用 lodash 的项目,你将在磁盘上有 100 份 lodash 的拷贝,而使用 pn

2023-01-07

pnpm 是一个快速、节省磁盘空间的软件包管理器。它使用一个内容可寻址的文件系统来存储磁盘上所有模块目录的所有文件。当使用 npm 或 Yarn 时,如果你有 100 个使用 lodash 的项目,你将在磁盘上有 100 份 lodash 的拷贝,而使用 pn

2022-10-04

pnpm 是一个快速、节省磁盘空间的软件包管理器。它使用一个内容可寻址的文件系统来存储磁盘上所有模块目录的所有文件。当使用 npm 或 Yarn 时,如果你有 100 个使用 lodash 的项目,你将在磁盘上有 100 份 lodash 的拷贝,而使用 pn

2022-09-20

pnpm 是一个快速、节省磁盘空间的软件包管理器。它使用一个内容可寻址的文件系统来存储磁盘上所有模块目录的所有文件。当使用 npm 或 Yarn 时,如果你有 100 个使用 lodash 的项目,你将在磁盘上有 100 份 lodash 的拷贝,而使用 pn

2022-11-21

pnpm 是一个快速、节省磁盘空间的软件包管理器。它使用一个内容可寻址的文件系统来存储磁盘上所有模块目录的所有文件。当使用 npm 或 Yarn 时,如果你有 100 个使用 lodash 的项目,你将在磁盘上有 100 份 lodash 的拷贝,而使用 pn

2022-07-23

pnpm 是一个快速、节省磁盘空间的软件包管理器。它使用一个内容可寻址的文件系统来存储磁盘上所有模块目录的所有文件。当使用 npm 或 Yarn 时,如果你有 100 个使用 lodash 的项目,你将在磁盘上有 100 份 lodash 的拷贝,而使用 pn

2023-01-19

pnpm 是一个快速、节省磁盘空间的软件包管理器。它使用一个内容可寻址的文件系统来存储磁盘上所有模块目录的所有文件。当使用 npm 或 Yarn 时,如果你有 100 个使用 lodash 的项目,你将在磁盘上有 100 份 lodash 的拷贝,而使用 pn

2023-03-13

pnpm 是一个快速、节省磁盘空间的软件包管理器。它使用一个内容可寻址的文件系统来存储磁盘上所有模块目录的所有文件。当使用 npm 或 Yarn 时,如果你有 100 个使用 lodash 的项目,你将在磁盘上有 100 份 lodash 的拷贝,而使用 pn

2022-05-18

pnpm 是一个快速、节省磁盘空间的软件包管理器。它使用一个内容可寻址的文件系统来存储磁盘上所有模块目录的所有文件。当使用 npm 或 Yarn 时,如果你有 100 个使用 lodash 的项目,你将在磁盘上有 100 份 lodash 的拷贝,而使用 pn

2022-12-23

pnpm 是一个快速、节省磁盘空间的软件包管理器。它使用一个内容可寻址的文件系统来存储磁盘上所有模块目录的所有文件。当使用 npm 或 Yarn 时,如果你有 100 个使用 lodash 的项目,你将在磁盘上有 100 份 lodash 的拷贝,而使用 pn

2023-04-21

pnpm 是一个快速、节省磁盘空间的软件包管理器。它使用一个内容可寻址的文件系统来存储磁盘上所有模块目录的所有文件。当使用 npm 或 Yarn 时,如果你有 100 个使用 lodash 的项目,你将在磁盘上有 100 份 lodash 的拷贝,而使用 pn

2023-05-30

pnpm 是一个快速、节省磁盘空间的软件包管理器。它使用一个内容可寻址的文件系统来存储磁盘上所有模块目录的所有文件。当使用 npm 或 Yarn 时,如果你有 100 个使用 lodash 的项目,你将在磁盘上有 100 份 lodash 的拷贝,而使用 pn

2022-09-06

pnpm 是一个快速、节省磁盘空间的软件包管理器。它使用一个内容可寻址的文件系统来存储磁盘上所有模块目录的所有文件。当使用 npm 或 Yarn 时,如果你有 100 个使用 lodash 的项目,你将在磁盘上有 100 份 lodash 的拷贝,而使用 pn