mcpField
P
pnpm

pnpm

官方
github.com开发者工具36.9kpnpm今天更新
代码仓库访问官网

关于 pnpm

pnpm 是面向 JavaScript 项目的包管理器,以节省磁盘空间和支持工作区著称。通过 pnpm 命令操作,可用 corepack enable pnpm 启用。

主要功能

  1. 01用 pnpm install 安装项目依赖
  2. 02用 pnpm add zod 添加 zod 等软件包
  3. 03用 pnpm run build 运行 package 脚本
  4. 04通过 corepack enable pnpm 经由 Corepack 启用

适用场景

  1. 01克隆 JavaScript 仓库后快速装好依赖
  2. 02在本地开发或 CI 中执行构建脚本
  3. 03管理共享依赖的多包工作区

安装

选择你的系统或包管理器,复制命令到终端运行。

$
corepack enable pnpm

安装完成后运行pnpm --version确认安装成功。

命令示例

常用命令按使用顺序排列。

01
pnpm install
02
pnpm add zod
03
pnpm run build

详细介绍

简体中文 | 日本語 | 한국어 | Italiano | Português Brasileiro

pnpm

快速且节省磁盘空间的包管理器:

  • 快速。 速度最高可达其他方案的 2 倍(参见基准测试)。
  • 高效。 node_modules 中的文件通过链接指向单一的内容寻址存储。
  • 非常适合单体仓库。
  • 严格。 包只能访问其 package.json 中声明的依赖项。
  • 确定性。 使用名为 pnpm-lock.yaml 的锁文件。
  • 可用作 Node.js 版本管理器。 参见 pnpm runtime。
  • 随处可用。 支持 Windows、Linux 和 macOS。
  • 久经考验。 自 2016 年起,各种规模的团队都在生产环境中使用它(使用示例)。
  • 实验性 Rust 移植版。 包含 pacquet,这是一个用 Rust 编写的实验性 CLI 移植版。
  • 查看与 npm 和 Yarn 的完整功能对比。

引用 Rush 团队的话:

Microsoft 在包含数百个项目、每天提交数百个 PR 的 Rush 仓库中使用 pnpm,我们发现它速度很快且十分可靠。

npm version Ecosystem E2E OpenCollective OpenCollective X Follow Stand With Ukraine

Platinum Sponsors

Bit OpenAI Notion
CodeRabbit

Gold Sponsors

Sanity Discord Vite
SerpApi Stackblitz Workleap
Nx Latitude

Silver Sponsors

Replit Cybozu BairesDev
Thesys devowl.io u|screen
Leniolabs_ Depot Cerbos
⏱️ Time.now

通过成为赞助者支持这个项目。

背景

pnpm 使用内容寻址文件系统,在磁盘上存储所有模块目录中的文件。 使用 npm 时,如果有 100 个项目都使用 lodash,磁盘上就会有 100 份 lodash 副本。 使用 pnpm 时,lodash 会存储在内容寻址存储中,因此:

  1. 如果你依赖不同版本的 lodash,只有不同的文件会被添加到存储中。 如果 lodash 有 100 个文件,而新版本只改动了其中一个文件, pnpm update 只会向存储中添加 1 个新文件。
  2. 所有文件都保存在磁盘上的同一位置。安装软件包时,其文件会从该位置链接过来,不会占用额外的磁盘空间。链接通过硬链接或写时复制克隆来实现。

因此,你可以节省数 GB 的磁盘空间,安装速度也会快得多。 如需了解更多关于 pnpm 创建的独特 node_modules 结构,以及它为何能与 Node.js 生态系统良好兼容,请阅读这篇简短文章:扁平化 node_modules 并非唯一方式。

💖 喜欢这个项目?通过发布一条 推文告诉大家

入门指南

基准测试

pnpm 的速度最高可达 npm 和 Yarn classic 的 2 倍。请参阅所有基准测试。

在一个依赖众多的应用上进行的基准测试:

README 配图

许可证

MIT,但 pnpr/ 目录除外,该目录以源代码可用的形式根据 PolyForm Shield License 1.0.0 发布。

评论

支持 Markdown