跳到主内容

pnpm 10.28

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

pnpm 10.28 引入了一个新的 beforePacking 钩子,用于在发布时自定义 package.json,提高了过滤安装的性能,并修复了几个错误。

次要更改

beforePacking 钩子

添加了对名为 beforePacking 的新钩子的支持,允许你在发布时自定义 package.json 内容 #3816

在运行 pnpm packpnpm publish 时,这个钩子就在创建 tarball 之前被调用。 它允许你修改将包含在已发布软件包中的软件包清单,而不会影响你本地的 package.json 文件。

.pnpmfile.cjs 中的示例用法:

module.exports = {
hooks: {
beforePacking(pkg) {
// 移除仅用于开发的字段
delete pkg.devDependencies
delete pkg.scripts
// 添加发布元数据
pkg.publishedAt = new Date().toISOString()
return pkg
}
}
}

有关更多详细信息,请参阅 .pnpmfile.cjs 文档

过滤后的安装性能

在某些情况下,使用过滤参数进行安装(即 pnpm install --filter ...)比不带任何过滤参数运行 pnpm install 的速度要慢。 此性能下降问题现已修复。 过滤后的安装速度应该与完整安装一样快或更快 #10408

补丁更改

  • 如果存储位于项目的子目录中,则不要将指向该项目的符号链接添加到存储的项目注册表中 #10411
  • 应该可以在 pnpm-workspace.yaml 中声明 requiredScripts 设置 #10261