pnpm 入门和安装

0 阅读1分钟

pnpm 安装

官网下载 安装[github.com/pnpm/pnpm/r…]

npm和pnpm区别

npm 将每个依赖的副本直接复制到项目的 node_modules 文件夹中,像是为每个项目都单独购买一份仓库里已有的图纸。 而 pnpm 采用了一种更巧妙的方式:它只在一个名为“仓库”(store)的全局地方存放一份图纸,各个项目都通过一种“快捷方式”(即硬链接和符号链接)来引用它

  • 关键区别如下:

特性维度

pnpm (新一代性能工具)

npm (传统的 Node.js 默认工具)

核心优势

磁盘占用

极低

pnpm 通过全局存储 + 硬链接节省大量空间。例如,10个项目安装相同依赖时,npm 需 1.2 GB,而 pnpm仅需 320 MB。

安装速度

快速

较慢

pnpm 因无需重复下载与写入,比 npm 快 2-3 倍。

依赖安全性

严格隔离

高度扁平化

pnpm 的 node_modules 结构消除了"幽灵依赖"风险,强制所有依赖显式声明。

Monorepo 支持

原生强力支持

基础支持

pnpm 通过内置 workspace 命令,为管理多包仓库提供了流畅体验。

锁文件

pnpm-lock.yaml

package-lock.json

两者都是严格的版本锁定文件,确保环境一致性。

pnpm对nodejs版本依赖

pnpm 版本

最低 Node.js 版本

关键变化 / 说明

11.0

v22.0 或更高

以纯 ESM 形式发布,不再支持 v18、v19、v20、v21。

10.0

约 v18.12

引入将依赖绑定到所需 Node.js 版本的能力。

9.0

v18.12 或更高

不再支持 Node.js v16。

8.0

v16.14 或更高

可通过独立脚本等方式在无 Node.js 环境下安装。

7.0

v14.0 或更高

不再支持 Node.js 12。

6.0

v12.17 或更高

不再支持 Node.js 10。

5.0

约 v12.0

最后一个支持 Node.js 12 的早期版本。

pnpm环境变量配置

配置 PNPM_HOME 环境变量,将上面应用解压安装到这里

Image text

验证是否安装成功

pnpm -v

Image text

pnpm特殊指定目录,默认都在PNMP_HOME下面

配置项

作用说明

配置命令示例

对应关系

store-dir

全局依赖仓库。所有下载过的依赖包都存放在这,可以把它指定到一个大容量的硬盘分区。

pnpm config set store-dir "D:\.pnpm-store"

pnpm store path 命令会显示此路径。

global-dir

全局包的安装目录。所有通过 pnpm add -g 安装的包都会放在这里。

pnpm config set global-dir "D:\.pnpm-global"

PNPM_HOME 环境变量在较新版本中可能直接影响此目录。

global-bin-dir

全局命令的存放目录。全局包提供的可执行命令(如 pnpm 自身)会放在这里。需要将此路径添加到系统的 PATH 变量中,才能在终端里直接调用这些全局命令。

pnpm config set global-bin-dir "D:\.pnpm-global\bin"

pnpm setup 通常会自动处理此路径。

cache-dir

存储 pnpm 下载的包缓存,可以加速后续安装。

pnpm config set cache-dir "D:\.pnpm-cache"

-

  • pnpm config set store-dir "D:\nodejs\pnpm-cache"

存量npm项目切换pnpm

  • 清理环境

删除现有项目中的 node_modules 文件夹和 package-lock.json 文件

  • pnpm install

pnpm 会根据 package.json 生成高效的 node_modules 结构并创建 pnpm-lock.yaml 文件

pnpm镜像配置