pnpm 的 2021 年
今年即将结束,对 pnpm 来说是美好的一年,让我们来看看它是怎么度过的。
使用情况
下载统计
我今年的目标是超越 Bower 的下载量。我们能够实现这个目标 在 11 月
pnpm 在 2021 年的下载量大约是 2020 年的 3 倍
这些统计数据甚至没有衡量 pnpm 的所有不同安装方式!它们只衡量了 pnpm npm 包 的下载量。今年我们还添加了 pnpm 的编译二进制版本,这些版本以不同的方式发布。
文档访问量
我们使用 Google Analytics 收集了一些来自我们文档的非个性化统计数据。在 2021 年,我们有时每周有超过 2,000 名独立访客。
我们的大多数用户来自美国和中国。
GitHub 星标
我们的 主要 GitHub 仓库 今年获得了 +5,000 个星标。
新用户
我们今年最大的新用户是 字节跳动(TikTok 背后的公司)。
此外,许多优秀的开源项目开始使用 pnpm。一些项目切换到 pnpm 是因为其对单仓库的出色支持
一些项目切换是因为他们喜欢 pnpm 的高效、快速和美观
功能亮点
新的 lockfile 格式(自 v6.0.0 起)
今年第一个也是最重要的变化之一是新的 pnpm-lock.yaml
格式。这是一个重大变更,因此我们不得不发布 v6。但它取得了成功。旧的 lockfile 经常导致 Git 冲突。自从新格式引入以来,我们没有收到任何关于 Git 冲突的投诉。
管理 Node.js 版本(自 v6.12.0 起)
我们发布了一个新命令 (pnpm env
),它允许管理 Node.js 版本。因此,您可以使用 pnpm 代替 Node.js 版本管理器,如 nvm 或 Volta。
此外,pnpm 作为独立的可执行文件发布,因此即使系统上没有预安装 Node.js,您也可以运行它。
注入本地依赖项(自 v6.20.0 起)
您可以“注入”本地依赖项。默认情况下,本地依赖项会符号链接到 node_modules
,但使用此新功能,您可以指示 pnpm 代替符号链接硬链接包的文件。
改进对同级依赖项问题的报告(自 v6.24.0 起)
同级依赖项问题以前以纯文本形式打印,很难理解。现在它们都已分组并以漂亮的层次结构打印。
竞争对手
Yarn
Yarn 在 v3.1 中添加了一个 pnpm 链接器。因此,Yarn 可以创建与 pnpm 创建的类似的 node-modules 目录结构。
此外,Yarn 团队计划实施内容寻址存储,以提高磁盘空间效率。
npm
npm 团队决定也采用 pnpm 使用的符号链接 node-modules 目录结构(相关 RFC)。
其他
Bun 用 Zig 编写,Volt 用 Rust 编写,两者都声称比 npm/Yarn/pnpm 更快。我还没有对这些新的包管理器进行基准测试。
未来计划
更快、更好、最佳。