惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Privacy & Cybersecurity Law Blog
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
B
Blog RSS Feed
罗磊的独立博客
V
V2EX
V
Visual Studio Blog
博客园 - 叶小钗
W
WeLiveSecurity
小众软件
小众软件
K
Kaspersky official blog
美团技术团队
雷峰网
雷峰网
阮一峰的网络日志
阮一峰的网络日志
Martin Fowler
Martin Fowler
Recorded Future
Recorded Future
Project Zero
Project Zero
Hugging Face - Blog
Hugging Face - Blog
Engineering at Meta
Engineering at Meta
Security Latest
Security Latest
Microsoft Azure Blog
Microsoft Azure Blog
V
Vulnerabilities – Threatpost
月光博客
月光博客
博客园 - 三生石上(FineUI控件)
Help Net Security
Help Net Security
博客园 - Franky
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
F
Fortinet All Blogs
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Forbes - Security
Forbes - Security
M
MIT News - Artificial intelligence
H
Hacker News: Front Page
大猫的无限游戏
大猫的无限游戏
Vercel News
Vercel News
Spread Privacy
Spread Privacy
The Register - Security
The Register - Security
H
Hackread – Cybersecurity News, Data Breaches, AI and More
量子位
Google Online Security Blog
Google Online Security Blog
PCI Perspectives
PCI Perspectives
The Last Watchdog
The Last Watchdog
AI
AI
N
News | PayPal Newsroom
D
DataBreaches.Net
Cloudbric
Cloudbric
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 司徒正美
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog

pnpm Blog

pnpm 11.11-11.14 pnpm 11.9 pnpm 11.8 pnpm 11.7 Why pnpm no longer expands environment variables in a repository's .npmrc pnpm 11.6 pnpm 11.5 pnpm 11.4 pnpm 11.3 pnpm 11.2 pnpm 11.1 pnpm 11.0 pnpm 10.32 pnpm 10.31 pnpm 10.30 pnpm 10.29 pnpm 10.28 pnpm 10.27 🚀 2025年的 pnpm pnpm 10.26 pnpm 10.25 我们如何保护新闻编辑部免受npm供应链攻击 pnpm 10.24 pnpm 10.23 pnpm 10.22 pnpm 10.21 pnpm 10.20
pnpm 11.10
Zoltan Kochan · 2026-07-05 · via pnpm Blog

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

次要更改

CI 适用的 _auth 设置

pnpm 现支持 _auth 设置,允许将注册源身份验证配置为单个结构化且以 URL 为键的值。 该设置既可以在全局 pnpm 配置(config.yaml)中定义,也可以在 CI 环境中通过 pnpm_config__auth 环境变量进行配置。

使用环境变量的形式规避了一个长期存在的问题:GitHub Actions、bash 和 zsh 会静默丢弃包含 /:. 字符的环境变量名,这导致原有的 pnpm_config_//host/:_authToken=… 格式失效。 而 _auth 环境变量的名称格式常规,因此能够被正确保留:

export pnpm_config__auth='{"https://registry.npmjs.org":{"@":{"authToken":"npm-token"},"@org":{"authToken":"org-token"}}}'

全局 config.yaml 中的等效配置如下:

_auth:
https://registry.npmjs.org:
"@":
authToken: npm-token
"@org":
authToken: org-token

在每个注册源 URL 配置中,@ 代表适用于整个注册源的凭证,而像 @org 这样的作用域则将凭证绑定到同一主机上的特定作用域。 由于凭证及其目标主机包含在同一个受信任的值中,因此受仓库控制的 pnpm-workspace.yaml.npmrc 文件无法将令牌重定向到其他主机——_auth 设置仅在环境变量和全局配置文件中生效,绝不会读取项目级配置文件中的设置。 关闭了 #12314

pnpm self-update 支持安装 pnpm v12(Rust 重写版)

pnpm self-updatepackageManager 版本切换功能现已支持安装并链接 pnpm v12(Rust 重写版)。该版本发布在 next-12 分发标签下,包含 pnpm@pnpm/exe 两种包名:

其原生二进制文件以 @pnpm/exe.<arch>-<0> 包的形式提供,并由 pnpm 内置安装程序直接链接——由于不依赖 Node.js 启动器,因此执行该命令时无需承担 Node.js 的启动开销。 从 v12 版本开始,安装过程将统一指向无作用域的 pnpm 包(即 Rust 可执行文件),即使是从单可执行文件格式的 @pnpm/exe 构建版本进行更新也是如此。

pnpm prefix

新增的 pnpm prefix 命令用于打印当前包的前缀目录;若使用 -g--global 标志,则打印全局前缀目录。

pnpm issues

pnpm issues 现已成为 pnpm bugs 的别名,执行该命令会在浏览器中打开对应包的 Bug 追踪页面。

Web 认证的 JSON 输出

当在非交互式终端中需要 OTP 验证时,Web 认证相关的 authUrldoneUrl 现在会包含在 JSON 格式的错误输出中 (#12724)。

补丁更改

  • 修复了 pnpm up -r <pkg> 导致版本范围开放的无关包版本被升级的问题。 安装层现在总是根据锁文件来设定 preferredVersions,因此当你仅请求更新特定包时,版本范围为 ^x.y.z 的包将不再重新解析为更新的兼容版本 (#10662)。
  • 修复了 pnpm up <pkg> 产生的结果与基于相同清单文件进行全新安装的结果不一致的问题。 现在,针对该软件包的重新解析过程,其效果与删除了锁文件中的相关条目完全一致,同时全新安装时会采用的首选版本依然保持有效。
  • <dep> 仅作为传递依赖存在时,执行 pnpm update <dep>@<version> 现在会输出警告,建议改用 pnpm.overrides (#12744)。
  • 针对那些忽略 npm 简略元数据格式、始终返回完整包文档的注册源(例如 Azure DevOps Artifacts),加快了解析速度并降低了内存占用。 pnpm 在缓存此类文档之前,会将其精简为仅包含缩减后的字段集。
  • 加速了大型工作区中的离线操作及 --prefer-offline 解析过程。 从本地缓存加载的包元数据现在会保留在内存中,因此每个包的元数据在每次命令执行期间仅解析一次,而不再是针对每个依赖项各解析一次。
  • 强化了全局包管理机制:Windows 平台上的可执行文件(针对 node.exe 变体)清理更加规范;禁止使用 pnpm add -g pnpm@<version>,应改用 pnpm self-update;全局清单中的依赖别名在合并到路径前会经过验证;每个安装组拥有独立的全新目录;移除全局包时,不再会取消关联属于其他包的可执行文件。
  • 增强了 pnpm deploy --force 的安全性,使其拒绝不安全的部署目标,例如工作区根目录、父级目录、工作区之外的路径以及符号链接目标的父级目录。
  • pnpm pack-app 现已禁止使用绝对路径或超出项目目录范围的 --entry / --output-dir 参数值,拒绝覆盖非普通文件类型的目标文件,并解析项目外部的 macOS codesign / ldid 签名工具,从而防止受仓库管理的 node_modules/.bin 劫持这些工具。 新增错误代码:ERR_PNPM_PACK_APP_ENTRY_OUTSIDE_PROJECTERR_PNPM_PACK_APP_OUTPUT_DIR_OUTSIDE_PROJECTERR_PNPM_PACK_APP_OUTPUT_FILE_NOT_REGULAR
  • pnpm packpnpm publish 在将 LICENSE 注入包中时,不再遵循工作区中软链接的 LICENSE;同时,若 prepack 生成的文件随后被 postpack 清理,这些命令也不再因此报错。
  • pnpm 现在会拒绝包名不符合 npm 包名规范的 jsr: 和命名注册表(如 gh:)标识符,并抛出 ERR_PNPM_INVALID_JSR_PACKAGE_NAMEERR_PNPM_INVALID_NAMED_REGISTRY_PACKAGE_NAME 错误,而不再静默生成格式错误的包名。
  • 修复了在设定首选版本时存在的原型污染隐患:清单文件或锁文件中名为 __proto__ 的依赖项将无法再通过 Object.prototype 进行写入操作。
  • 在计算补丁文件哈希值时,patchedDependencies 中的相对路径现在会基于锁文件所在的目录进行解析,因此从子目录运行 pnpm install 不再会因 ENOENT 错误而失败 (#12762)。
  • pnpm peers 不再报告因缺少通过 pnpm.peerDependencyRules.ignoreMissing 忽略的对等依赖项而导致的冲突。
  • 修复了当选定项目仅通过未选定项目存在传递性依赖关系时,经 --filter 筛选的命令的拓扑顺序问题。 这现在也适用于 --filter-prod 和混合选择 (#8335)。
  • PNPM_CONFIG_NPMRC_AUTH_FILE 指向项目级的 .npmrc 文件时,pnpm 不再针对其中被忽略的项目级认证设置发出警告——这被视为用户明确选择信任该文件 (#12480)。
  • 当在注册源中找不到某个依赖项(返回 404 错误),且工作区中存在同名项目但版本不匹配时,错误信息现在会列出工作区中可用的版本(ERR_PNPM_NO_MATCHING_VERSION_INSIDE_WORKSPACE)(#1379)。
  • 当通过 pnpr 安装加速服务器进行解析时,pnpm 不再在解析请求中转发其自身的上游注册源凭证——仅发送用于向 pnpr 标识调用者的 Authorization 请求头。
  • 已将 Node.js 发布团队的新签名密钥(Stewart X Addison)添加到内置的 Node.js 发布密钥列表中,从而确保由该新发布者对 SHASUMS256.txt 进行签名的运行时能够顺利通过验证。
  • node-gyp 的 gyp_main.pygyp 入口文件在 pnpm@pnpm/exe 的 tarball 包中现已包含可执行权限位,因此从源码构建原生插件时不再会因权限错误而失败。
  • 修复了 Shell 自动补全功能在 --filter-F 别名后不提示工作区的问题。
  • 恢复了差异化渲染(ansi-diff),以修复输出行重复的问题。