跳至主要内容

pnpm 的 2021 年

·阅读时长 3 分钟

今年即将结束,对 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 更快。我还没有对这些新的包管理器进行基准测试。

未来计划

更快、更好、最佳。