Repolode
pnpm

pnpm/pnpm

快速且节省磁盘空间的 Node.js 包管理器,通过共享的内容寻址存储链接依赖文件。

可替代:npmYarn

Star
36,915
Fork
1,960
未关闭 Issue
199
最近提交
12小时前

这是什么?

pnpm 是面向 JavaScript 和 Node.js 项目的包管理器,可作为 npm 和 Yarn 的替代。它不会把每个依赖复制到每个项目的 node_modules 中,而是将所有包文件统一保存在磁盘上的内容寻址存储里,再链接到各个项目,相同文件不会重复占用空间。

它实行严格的依赖解析:包只能引用自己 package.json 中明确声明的依赖,从而避免扁平 node_modules 结构下隐藏的未声明引用问题。安装结果记录在 pnpm-lock.yaml 锁文件中,便于复现构建。内置的工作区支持使其适合 monorepo 项目。

项目支持 Windows、Linux 和 macOS。它还提供用于管理 Node.js 版本的 pnpm runtime,以及一个实验性的 Rust 版 CLI,名为 pacquet。

核心功能

  • 01将包文件统一存储在内容寻址存储中,项目通过链接复用,节省磁盘空间。
  • 02严格的依赖隔离,包只能访问 package.json 中声明的依赖。
  • 03通过 pnpm-lock.yaml 锁文件保证安装结果可复现。
  • 04内置工作区支持,适合 monorepo 项目。
  • 05通过 pnpm runtime 管理 Node.js 版本。
  • 06支持 Windows、Linux 和 macOS。

适用场景

  • 为包含大量相互关联包的大型 monorepo 安装依赖。
  • 减少同时维护多个共用依赖的 JavaScript 项目时的磁盘占用。
  • 在团队代码库中强制要求明确声明依赖。
  • 在 CI 流水线中替换 npm 或 Yarn,以加快安装速度。

快速上手

  1. 1

    按照官方安装指南安装

使用前须知

  • Rust 移植版 pacquet 仍处于实验阶段,生产环境建议使用成熟的 CLI。

标签

常见问题

pnpm 是什么?
快速且节省磁盘空间的 Node.js 包管理器,通过共享的内容寻址存储链接依赖文件。 pnpm 是面向 JavaScript 和 Node.js 项目的包管理器,可作为 npm 和 Yarn 的替代。它不会把每个依赖复制到每个项目的 node_modules 中,而是将所有包文件统一保存在磁盘上的内容寻址存储里,再链接到各个项目,相同文件不会重复占用空间。
pnpm 可以免费使用吗?用的什么许可证?
pnpm 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
pnpm 还在维护吗?
活跃维护中。pnpm 最近一次提交是在 2026年10月24日。
pnpm 适合用来做什么?
为包含大量相互关联包的大型 monorepo 安装依赖。 减少同时维护多个共用依赖的 JavaScript 项目时的磁盘占用。 在团队代码库中强制要求明确声明依赖。 在 CI 流水线中替换 npm 或 Yarn,以加快安装速度。
pnpm 怎么安装和运行?
按照官方安装指南安装
在哪里获取 pnpm?
源代码和安装说明在 GitHub 上:https://github.com/pnpm/pnpm

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目