pnpm 安装和使用

1. 简介

Fast, disk space efficient package manager:

  • Fast. Up to 2x faster than the alternatives (see benchmark).
  • Efficient. Files inside node_modules are linked from a single content-addressable storage.
  • Great for monorepos.
  • Strict. A package can access only dependencies that are specified in its package.json.
  • Deterministic. Has a lockfile called pnpm-lock.yaml.
  • Works as a Node.js version manager. See pnpm env use.
  • Works everywhere. Supports Windows, Linux, and macOS.
  • Battle-tested. Used in production by teams of all sizes since 2016.
  • See the full feature comparison with npm and Yarn.

作用:

  1. 自由切换node版本,当多个项目对node版本依赖不同时,相当于nvm
  2. 节省 磁盘空间,开发过程中,项目目录下的 node_modules 文件其实是个类似于快捷方式的东西,它会集中管理npm包,不必每个项目都下载一遍npm包依赖
  3. 我是菜鸡,我没有用到其他niubility的功能

2. 下载

  • github : Release - pnpm/pnpm
    下载后得到 pnpm-win-x64.exe,将其重命名为 pnpm.exe,这一步主要是便于使用,不然以后使用pnpm时必须写 pnpm-win-x64

3. 配置

下载得到的文件,即为可执行文件,不是安装包,所以不用安装,只需要剪切到自己想安装的文件夹中即可

3.1 配置环境变量

  • PNPM_HOME
    这个环境变量值为 pnpm.exe 所在的文件夹,我的放在 E:\pnpm\
  • PNPM_CONFIG_FILE
    这个环境变量值为 pnpm配置文件的路径,默认路径 C:\Users\[当前用户名]\AppData\Local\pnpm\config\rc,如果觉得无所谓配置文件位置,则不处理即可。

3.2 配置pnpm

因为没有使用pnpm初始化命令,所以 PNPM_CONFIG_FILE指向的文件暂时还没有生成,可以在自己指定的位置新建一个同名的文件,该配置文件没有后缀名 ,它就叫 rc

然后记事本在rc文件中写入如下内容,根据自己需要的位置进行修改路径,这些路径都是pnpm以后下载包的文件夹,以及相关缓存的文件夹,最后一个是npm的镜像(当前为淘宝)

INI 复制代码
global-dir=E:\pnpm\global
bin-dir=E:\pnpm\bin
store-dir=E:\pnpm\cache
registry=https://registry.npmmirror.com

上面配置文件等价的命令,命令执行结果会写入该文件,所以可以直接修改该文件内容:

shell 复制代码
 pnpm config set global-dir "E:\pnpm\global"
 pnpm config set bin-dir "E:\pnpm\bin"
 pnpm config set store-dir "E:\pnpm\cache"
 pnpm config set registry https://registry.npmmirror.com

读取配置内容命令:

shell 复制代码
PS C:\Users\10794> pnpm config list
cache=E:\nodejs-repository\node_cache
prefix=E:\nodejs-repository\node_global
registry=https://registry.npmmirror.com
user-agent=pnpm/10.4.1 npm/? node/v20.11.1 win32 x64

3.3 初始化

在cmd 或 powershell执行:

SHELL 复制代码
pnpm setup

我当初没有先配环境变量和重命名为pnpm.exe,后期又重新配了一次,下图仅参考:

如果前期没有做任何配置,那么该命令作用是 复制下载的exe到C盘的C:\Users\[用户名]\AppData\Local\pnpm\文件夹中,然后起了一个叫 PNPM_HOME的环境变量,然后把PNPM_HOME的环境变量放到Path下,作用就是能在cmd或powershell中能直接使用pnpm来指定pnpm.exe(具体路径省略)。
!!!IMPORTANT : 该命令生成的环境变量全放在用户变量下面,而不是系统变量,如果有需要,自己在系统变量下手动搞一次,但是我推荐使用用户变量

4. 使用

  1. 安装node
    pnpm env add --global 【node版本号】,如:
shell 复制代码
pnpm env add --global 16.15
# 安装最新长期支持版
pnpm env add --global lts
# 安装最新长期版
pnpm env add --global latest
  1. 指定/切换本地node
    pnpm env use --global 【node版本号】,如果pnpm发现本地没有该版本,将会下载并应用,如:
shell 复制代码
pnpm env use --global 16.15
# 安装最新长期支持版
pnpm env use --global lts
# 安装最新长期版
pnpm env use --global latest
  1. 下载npm包可以使用pnpm install ,也可以使用npm,毕竟node带有npm

附:

  1. AI生成的命令图
相关推荐
aiguangyuan2 天前
Node项目中两个常用的环境变量配置工具
node·后端开发
自律的蜗牛6 天前
Systemd(Linux 系统级守护,最稳定)node
docker·容器·node
我爱学习_zwj8 天前
Node.js:从浏览器到服务器的JS革命
javascript·node
276695829210 天前
闪购商家端 mtgsig
java·python·c#·node·c·mtgsig·mtgsig1.2
a31582380614 天前
Linux部署Python Django工程和Node工程,使用宝塔面板
linux·服务器·python·django·node·strapi·宝塔面板
武子康16 天前
AI研究-133 Java vs Kotlin/Go/Rust/Python/Node:2025 详细对比分析 定位与取舍指南
java·javascript·python·golang·rust·kotlin·node
276695829216 天前
最新 _rand 分析
前端·javascript·数据库·node·rand·231滑块·_rand分析
achi01020 天前
Ubuntu 24.04 LTS 下 Vue 3 开发环境搭建与生产部署完整指南
nginx·node·nvm·vue 3·ubuntu 24·开发环境搭建·国内镜像仓库
猿小猴子1 个月前
Node 的版本管理工具 nvm 介绍
npm·node·nvm
27669582921 个月前
朴朴超市小程序分析
java·python·小程序·node·sign·朴朴超市·sign-v2