























pnpm 11.5 新增了 hoistingLimits 设置,用于控制 nodeLinker: hoisted 模式下依赖项的提升层级;更换了交互式提示库以修复长选项列表中的滚动问题;在信任级别中识别了暂存发布;并针对安装和 dist-tag 进行了多项修复。
hoistingLimits 设置一个新的 hoistingLimits 设置控制使用 nodeLinker: hoisted 时依赖关系的提升距离。 它对应 Yarn 的 nmHoistingLimits,并接受以下参数:
pnpm 将所有交互式提示的实现从 enquirer 替换为了 @inquirer/prompts。 此更改修复了 update -i 命令中长选项列表在终端内被截断的滚动溢出问题 (#6643)。 新库采用了感知视觉行数的分页机制,因此在有大量包可用时,滚动操作能够正常运行。
受影响的命令包括 pnpm update -i(以及 --latest)、pnpm audit --fix -i、pnpm approve-builds、pnpm patch、pnpm patch-remove、pnpm publish、pnpm login,以及 pnpm run / pnpm exec(当配置了 verifyDepsBeforeRun=prompt 时)。
在所有交互式提示中,Vim 风格的 j / k 键仍可用于上下导航。
分阶段发布现已在信任度量标准中得到认可。 当某个包版本的注册表元数据包含 approver 字段时,该字段会被视为最强有力的信任凭证(其优先级高于“受信任发布者”和“来源证明”),因为分阶段发布要求通过双因素认证来批准发布。 这避免了从暂存发布切换到较低信任级别时出现误报的信任降级错误 (#11887)。
pnpm i nuxt@npm:nuxt-nightly@5x)时,若依赖树中不同层级的传递依赖包存在相互的对等依赖循环,会导致 pnpm 在解析对等依赖阶段挂起的问题 (#11999)。pnpm dist-tag add 和 pnpm dist-tag rm 时,若不加 --otp 就会失败的问题。 pnpm 现已通过现有的基于浏览器的 2FA 流程(即 pnpm publish 所使用的流程)来处理 OTP 验证:浏览器会自动打开,用户完成身份验证后,系统会在重试时设置 dist-tag。 --otp=<code> 继续通过传统流程运作。minimumReleaseAgeExclude 的处理,确保被排除的包不会被锁定在过旧的版本上。integrity 字段丢失的问题。 缺失的完整性校验信息可能导致后续使用 --frozen-lockfile 进行的安装操作因 ERR_PNPM_MISSING_TARBALL_INTEGRITY 错误而失败 (#12001)。pnpm-lock.yaml 但存在 node_modules/.pnpm/lock.yaml 且该文件仍符合清单要求时,跳过依赖项重新解析。 pnpm install 现在会复用已物化的快照来重新生成 pnpm-lock.yaml,而不是遍历注册源从头重建 (#11993)。 当 pnpm-lock.yaml 缺失时,--frozen-lockfile 仍然拒绝继续执行。此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。