---
url: https://eoht.net/fe/pnpm/install.md
description: >-
  按 npm、Homebrew 和独立安装脚本介绍 pnpm 安装，说明 Node.js 前提、项目锁定版本、pnpm
  自身升级与依赖更新的区别，并提供版本和存储路径验证命令。
---

# pnpm 安装与升级：版本选择、验证和存储路径 {#pnpm-installation-guide}

![pnpm =688x](https://i.eoht.net/docs/pnpm-install-922fbb8bb4d96b8f602a40e6cd07ee13.svg "pnpm")

先查看项目 `package.json` 中的 `packageManager`，以及 `.nvmrc` 或 `engines` 对 Node.js 的要求。已有项目应沿用约定版本，避免安装工具时顺带改变项目的包管理器版本。

## 安装 pnpm {#install-pnpm}

截至 2026 年 10 月核对，官方当前发布线为 pnpm 12；通过 npm 安装它需要 Node.js 22.13 或更高版本。pnpm 12 本身使用原生可执行文件，但运行 JavaScript 项目仍须满足项目的 Node.js 要求。平台支持范围和前提以 [官方安装文档](https://pnpm.io/installation) 为准。

下面选择一种安装渠道即可。示例安装 pnpm 12；已有项目锁定其他版本时，npm 命令中的版本应与项目一致。

::: code-group

```sh [npm（Windows/macOS/Linux）]
node --version
npm --version
npm install -g pnpm@12
```

```sh [Homebrew（macOS/Linux）]
brew install pnpm
```

```powershell [PowerShell 独立脚本]
Invoke-WebRequest https://get.pnpm.io/install.ps1 -UseBasicParsing | Invoke-Expression
```

:::

Windows 官方优先推荐 npm 安装方式；独立脚本适用于选择该渠道的用户。脚本安装按提示配置环境变量后，重新打开终端再验证：

```sh
pnpm --version
```

若命令不存在或版本与预期不同，检查实际命中的可执行文件，避免 npm、Homebrew、Corepack 或独立安装路径互相遮挡：

::: code-group

```sh [macOS/Linux]
command -v pnpm
```

```powershell [Windows PowerShell]
Get-Command pnpm -All
```

:::

## 升级 pnpm 与更新依赖 {#update-pnpm}

升级 **pnpm 本身**，按原安装渠道选择命令：

| 安装渠道 | 升级方式 |
| --- | --- |
| npm | `npm install -g pnpm@12`，或填写项目需要的具体版本 |
| Homebrew | `brew upgrade pnpm` |
| pnpm 自身管理的安装 | `pnpm self-update 12` |

`pnpm self-update` 在带 pnpm 版本声明的项目内还会更新 `packageManager` 等版本声明；Homebrew 或 Corepack 管理的全局安装也有不同处理方式。只更新个人工具时，先离开锁定版本的项目目录，并确认安装渠道。详见 [self-update 文档](https://pnpm.io/cli/self-update)。

**项目依赖更新**则在项目目录中进行，它不会把 pnpm 自身升级：

```sh
pnpm up          # 在声明的版本范围内更新项目依赖
pnpm up dayjs    # 只更新指定依赖
```

更新会涉及依赖声明或锁文件，应查看差异并运行项目检查。新增、移除和锁文件安装见 [pnpm 管理依赖项](/fe/pnpm/package)。

## 设置与验证存储路径 {#configure-pnpm-store-path}

默认存储位置通常无需修改。需要放到指定磁盘时，把示例路径替换为当前用户可写的实际目录：

```sh
pnpm config set --global store-dir "/path/to/.pnpm-store"
pnpm config get store-dir
pnpm store path
```

`config get` 查看配置值，`store path` 查看实际使用的存储路径。这里的 `--global` 表示当前用户的全局配置，不是给项目添加全局依赖。修改配置不会自动搬迁旧存储目录。

恢复默认配置：

```sh
pnpm config delete --global store-dir
pnpm store path
```

配置作用范围可参考 [pnpm config 官方说明](https://pnpm.io/cli/config)。
