跳到主内容

pnpm 的 2022 年

· 一分钟阅读

又是一年年底。 真是艰难的一年。 你们应该知道,我住在乌克兰,由于俄罗斯对我们发动战争,指挥这个项目比往年都难。 尽管如此,今年对pnpm来说是很好的一年。 我们有了很多新用户、贡献者,并且我们实现了许多很棒的功能。

(上图由 Midjourney 生成。 这只老虎象征虎年)

使用方法

下载统计

我今年的目标是在下载量上击败 Lerna。 我们在8月实现了 这个目标:

2022 年 pnpm 的下载量比 2021 年多 5 倍

文档访问

我们使用 Google Analytics 从我们的文档中收集了一些非个性化的统计数据。 在 2022 年,有时我们一周就有超过 20,000 名不同的访客。 这比2021年高10倍!

GitHub stars

我们的 主 GitHub 仓库 今年获得了 +7,000 颗星。

贡献者

今年我们有很多新的和活跃的贡献者。 这些人在 2022 年合并了至少一个 PR:

功能亮点

支持无符号链接的 hoisted 的node_modules(从v6.25.0开始)

就在 2022 年初,我们增加了对“传统" hoisted 的支持(又称扁平化的 node_modules)。 我们使用 Yarn 的 hoist 算法来创建一个正确的 hoisted node_modules。 这个新设置基本上使 pnpm 可以兼容所有与 npm CLI 兼容的 Node.js 技术栈。

要使用 hoisted 的 node_modules 目录结构,请在 .npmrc 文件中使用 node-linker=hoisted 设置。

副作用缓存Side effects cache (从v7.0.0开始)

自 v7 以来,默认情况下启用了 副作用缓存side-effect-cache ,因此需要构建的依赖只会被构建一次。 这大大提高了依赖中含有构建脚本的项目的安装速度。

依赖补丁Dependencies patching(从v7.4.0开始)

添加了 pnpm patch 命令,用于修补 node_modules中的依赖项。

基于时间的依赖解析策略Time-based resolution strategy(从 v7.10.0开始)

pnpm 添加了一种新的解析模式,会使更新依赖项更加安全。 您可以使用 resolution-mode 设置,更改解析模式。

列举依赖中的许可证 Listing licenses of dependencies(从 v7.17.0开始)

你可以使用 pnpm licenses list 命令来检查已安装软件包的许可证。