pnpm v9 正式发布,已停止 Node.js v16 支持

近日,pnpm v9.0.0 正式发布!带来了一系列重大更新和改进,让你的开发体验更加顺畅。现在可以通过 npm install -g pnpm 来升级 pnpm 到最新版本,接下来让我们一起看一下 pnpm v9 有哪些亮眼的新功能吧。

🔥 Node.js 支持

pnpm v9.0.0 现已停止对 Node.js v16 提供支持,但不用担心,现在将 pnpm 与 Node.js 一起捆绑发布。

这意味着,无论你安装了哪个版本的 Node.js,pnpm 都会使用必要的 Node.js 运行时。你只需通过独立脚本或者安装 @pnpm/exe 包来安装 pnpm,就能实现这一功能。

🔧 Corepack 功能增强

现在 pnpm 会检查 package.json 文件中的 packageManager 字段。

如果该字段存在,并且指定了不同的包管理器或者不同版本的 pnpm,pnpm 将停止执行。这确保你始终使用项目所需的正确的包管理器和版本。

🔔 配置更新

默认禁用 link-workspace-packages,这意味着默认情况下,只有在使用工作区协议指定依赖项时,才会从工作区包中链接依赖项。

默认启用 dedupe-injected-deps。

默认启用 hoist-workspace-packages 和 enable-pre-post-scripts。

在 macOS 上使用与 Linux 相同的目录 ~/.local/state/pnpm 存储状态文件。

🔒 锁定文件更新

采用了 Lockfile v9,新的格式更易读,并且更能抵抗 Git 冲突。不再支持 lockfile v5,使用 pnpm v8 将 lockfile v5 转换为 lockfile v6。

🔍 依赖解析更新

正确解析具有自己的对等依赖项的对等依赖项,可从依赖图中的任何包解析可选的对等依赖项。

pnpm licenses list 现在打印同一软件包的所有版本的许可信息,以防不同版本使用不同的许可证。

🎉 新增命令

pnpm completion [shell],用于将完成代码打印到控制台。

已移除修改用户 shell dotfiles 的旧命令。

🔧 其他改进

现在可以仅从 Git 子目录安装依赖项,例如:

shell 复制代码
pnpm add github:user/repo#path:packages/foo

将从 packages/foo 子目录添加依赖项。此新参数可以与其他支持的参数组合使用。

  • node-gyp 已更新到版本 10。
  • 新增 PowerShell 完成支持。
  • 运行脚本时,支持在 .npmrc 文件中使用 node-options 选项。
  • 新增支持注册表范围的 SSL 配置(cert、key 和 ca)。
  • 新增 ignoredOptionalDependencies 字段,用于跳过指定的可选依赖项。
  • .pnpmfile.cjs 的校验和保存在锁定文件中。
  • 新增 pnpm dlx 的缓存功能。

🛠 修复内容包括

  • 安装 --lockfile-only 时不下载软件包 tarballs
  • 对等依赖规则只影响报告而不影响锁定文件中的数据
  • 链接覆盖可以使用绝对路径
  • pnpm dlx 不应从当前工作目录读取设置。

🌟 升级到 pnpm v9.0.0,享受更好的开发体验吧!

相关推荐
hhwyqwqhhwy16 分钟前
设备树之 provider 和 consumer
java·linux·前端
云舜言传27 分钟前
Bloom 手势演示操作 · 录屏指南
javascript·深度学习·机器学习
垆边人似月.1 小时前
Python中如何使用get函数实现频次查询
服务器·前端·python
moshuying2 小时前
DeepSeek开源生产级推理框架DeepInfer:单集群一天处理155万亿token,这意味着什么?
前端
子兮曰3 小时前
PHP漏洞危机,你的网站升级了吗?
前端·后端·php
jerrywus3 小时前
给 Pi 装上生图插件:从登录报错到画出一只 200×200 的猫
前端·agent·claude
陈随易3 小时前
搞钱点子之生态鱼缸
前端·后端·程序员
PBitW3 小时前
从空目录到上线:我全程用 TRAE 做了一款微信小游戏合集(含一次完整架构重构)
前端·trae
不爱学英文的码字机器3 小时前
从Q1迁到T1,同一个编号已经换了含义
前端·数据库·microsoft
云和数据.ChenGuang3 小时前
光哥说Python 循环导入(Circular Import)深度解析:成因、排查与解决方案
开发语言·前端·人工智能·python·langchain