跳到主内容

pnpm 11.15-11.19

· 一分钟阅读
Zoltan Kochan
pnpm 的首席维护者

pnpm 11.15 through 11.19 teach pnpm update and pnpm outdated to update GitHub Actions, let pnpm update write changesets for the bumps it makes, introduce cleaner update and audit settings sections, add publishConfig.name for publishing a package under a different name, harden pnpm self-update against project-supplied configuration, make web-based login work without a TTY, and accept = as a save-prefix. They also cut peak resolution memory by several times on large workspaces and speed up repeat installs after compatible dependency changes.

pnpm 11.11-11.14

· 一分钟阅读
Zoltan Kochan
pnpm 的首席维护者

pnpm 11.11 至 11.14 版本引入了原生的工作区发布管理功能(包括 pnpm changepnpm lane 和纯粹的 pnpm version -r 命令)、用于端到端诊断安装状态的 pnpm doctor 命令、用于管理注册源上包与组织的 pnpm accesspnpm team 命令、收敛覆盖机制,以及支持协议标识符的 peerDependencies 声明。 它们还修复了一个路径遍历漏洞,将冷缓存解析期间的峰值内存占用降低了约 30%,并解决了对等依赖死锁问题。

pnpm 11.10

· 一分钟阅读
Zoltan Kochan
pnpm 的首席维护者

pnpm 11.10 引入了 _auth 设置以支持 CI 友好的注册源身份验证,新增了 pnpm prefixpnpm issues 命令,并支持通过 pnpm self-update 安装 pnpm v12(Rust 重写版本)。 此外,该版本还提高了 pnpm up 的准确性,加快了针对忽略简略元数据的注册源的解析速度,并增强了全局包管理、pnpm deploypnpm pack-app 的健壮性。

pnpm 11.9

· 一分钟阅读
Zoltan Kochan
pnpm 的首席维护者

pnpm 11.9 针对无法发布校验和的注册源计算缺失的 tarball 完整性哈希值,新增 pnpm sbom --exclude-peers 选项,优化了包含循环依赖的锁文件的审计性能,修复了对等依赖解析的不确定性问题,并收紧了 minimumReleaseAgetrustPolicy 的排除逻辑。

pnpm 11.8

· 一分钟阅读
Zoltan Kochan
pnpm 的首席维护者

pnpm 11.8 引入了安装“预演”功能、Node.js 包映射生成、更丰富的 SBOM 输出,使 pnpm view 默认指向当前包,并修正了 pnpm run --no-bail 的退出码。 此外,该版本还修复了配置依赖项的锁文件遍历问题,以及多项关于安装/更新确定性的修复。

pnpm 11.7

· 一分钟阅读
Zoltan Kochan
pnpm 的首席维护者

pnpm 11.7 引入了 frozenStore 设置,支持针对只读包存储进行安装;新增了 --batch 标志,允许在单个请求中发布整个工作区;支持针对特定作用域的身份验证令牌;并将完整的解析与安装过程委托给 pacquet 处理。 此外,该版本还增强了对锁文件别名的处理,让多个安装路径确定,并修复了若干与发布及 Windows 平台相关的问题。

为什么 pnpm 不再解析仓库 .npmrc 文件中的环境变量

· 一分钟阅读
Zoltan Kochan
pnpm 的首席维护者

过去,pnpm 会在任何发现 ${ENV_VAR} 占位符的地方对其进行解析替换——这包括你刚克隆的代码仓库中的 .npmrcpnpm-workspace.yaml 文件。 这种机制可能被恶意仓库利用,从而窃取你环境中的敏感信息。 自 v10.34.2 和 v11.5.3 版本起,pnpm 不再解析由仓库控制的注册源及凭证配置中的环境变量。

这是一项安全修复(GHSA-3qhv-2rgh-x77r),对于某些配置而言,它属于破坏性变更。 本文介绍了此次攻击、具体发生了哪些变化,以及如何进行迁移。

pnpm 11.6

· 一分钟阅读
Zoltan Kochan
pnpm 的首席维护者

pnpm 11.6 新增了一种无需配置文件的注册源身份验证方式,支持通过 npm_config_//…pnpm_config_//… 环境变量进行配置;同时提高了默认网络并发数,并在仅缺失 pnpm-lock.yaml 文件时跳过完整的重新解析过程。 它还会推断可选依赖项的平台字段,从而确保绝不会下载针对其他平台的二进制文件。

pnpm 11.5

· 一分钟阅读
Zoltan Kochan
pnpm 的首席维护者

pnpm 11.5 新增了 hoistingLimits 设置,用于控制 nodeLinker: hoisted 模式下依赖项的提升层级;更换了交互式提示库以修复长选项列表中的滚动问题;在信任级别中识别了暂存发布;并针对安装和 dist-tag 进行了多项修复。

pnpm 11.4

· 一分钟阅读
Zoltan Kochan
pnpm 的首席维护者

pnpm 11.4 关闭了有关锁文件完整性、凭证范围、git 解析、补丁文件和依赖项别名的一系列供应链漏洞,默认情况下使让 tarball 完整性不匹配导致安装硬失败(通过具有狭窄范围的“--update-checksums”选入),并将 pnpm runtime set 更改为默认写入devEngines.runtime 而不是 engines.runtime