跳到主要内容

pnpm

pnpm 的核心优势不是“命令不同”,而是它通过内容寻址存储和链接机制,把依赖安装速度、磁盘占用和 workspace 管理都做得更友好。

为什么很多前端项目会切到 pnpm

  • 安装速度快
  • 更省磁盘空间
  • 对 monorepo / workspace 支持很好
  • 依赖关系更严格,能减少“幽灵依赖”问题

安装

npm install -g pnpm

# 或者
brew install pnpm

它和 npm / Yarn 的差异

1. 共用依赖存储

pnpm 会把依赖包统一存到全局仓库,再通过硬链接和符号链接接到项目里,而不是每个项目都复制一份完整依赖。

2. 更严格的依赖边界

默认情况下,项目只能直接访问自己声明过的依赖。这样更容易提前暴露错误依赖引用。

3. workspace 体验好

在多包仓库里,pnpm 的过滤、批量执行和依赖安装体验通常比较顺手。

node_modules 结构示意

常用命令

pnpm install
pnpm add axios
pnpm add -D typescript
pnpm remove lodash
pnpm dev
pnpm build
pnpm dlx create-vite

使用建议

  • 新项目可以直接默认使用 pnpm
  • 团队项目里最好统一 lockfile,不混用不同包管理器
  • 如果是 monorepo,建议一起配好 workspace 和 Node 版本管理工具