跳到主内容

pnpm 11.10

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

pnpm 11.10 adds the _auth setting for CI-friendly registry authentication, new pnpm prefix and pnpm issues commands, and the ability for pnpm self-update to install pnpm v12 (the Rust port). It also improves pnpm up accuracy, speeds up resolution against registries that ignore abbreviated metadata, and hardens global package management, pnpm deploy, and pnpm 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

pnpm 11.3

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

pnpm 11.3 新增了对 npm 分阶段发布功能(pnpm stage)的支持;引入了全新的 trustLockfile 设置,用于跳过对已受信任的锁文件进行的供应链验证环节;此外,还提供了 pnpm pkgpnpm repopnpm set-script 命令的原生实现。 此外,它为 packpublish 命令新增了 --skip-manifest-obfuscation 标志,并降低了在大型工作区中执行 minimumReleaseAgetrustPolicy 验证时的内存占用。

pnpm 11.2

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

pnpm 11.2 引入了实验性的选择加入 pacquet(pnpm 的 Rust 移植版)作为安装后端,扩展了 配置依赖项 以安装一层 optionalDependencies(因此 esbuild/swc 平台二进制模式也适用于配置依赖项),连接了文档中长期存在的 pnpm login --scope 标志,并在 pnpm outdatedpnpm update --interactive 中显示运行时入口(Node.js、Deno、Bun)。