背后
我的电脑只分了C盘和D盘,C盘作为系统盘仅有100多G空间,而每次安装新工具时基本都会默认安装到C盘用户目录下。长期下来,不仅导致C盘空间紧张,也让项目依赖管理变得混乱。为了合理利用电脑存储空间,以下是将pnpm所有相关目录完全迁移到D盘的完整步骤。 由于我的node本来就安装在D盘,所以执行 npm install pnpm -g时,pnpm的安装位置,也安装到了D盘。但是用pnpm下载包时,就下在了C盘。所以以下步骤是基于执行npm install pnpm -g后的背景下的操作步骤。
配置完之后,当在终端执行pnpm开头的命令,还是从我的D盘中node安装目录:D:\Program Files\nodejs\pnpm中执行pnpm.cmd可执行文件。因为我的node本来是安装在D盘的。所以,node安装的包,也会在D盘。这个是不变的。变的是,比如我通过pnpm全局安装live-server,这个live-server包保存的位置,和live-server包的可执行文件位置,已经被我从C盘变成D盘。就这样。
方案
第一步:创建目录
比如我想安装的位置 D:\Program Files\pnpm-repository
cmd + R
arduino
mkdir "D:\Program Files\pnpm-repository"
# 创建目录(不创建这个目录,set时也会自动创建)
mkdir "D:\Program Files\pnpm-repository\store"
mkdir "D:\Program Files\pnpm-repository\global"
mkdir "D:\Program Files\pnpm-repository\bin"
mkdir "D:\Program Files\pnpm-repository\state"
mkdir "D:\Program Files\pnpm-repository\cache"
目录说明:
store: 核心存储仓库,所有下载的包内容都存放在这里global: 全局安装的包位置bin: 可执行命令文件state: pnpm运行状态文件cache: 下载缓存,加速后续安装
第二步:配置pnpm使用新目录
通过pnpm配置命令,设置每个目录的位置:
cmd
python
pnpm config set store-dir "D:\Program Files\pnpm-repository\store"
pnpm config set global-dir "D:\Program Files\pnpm-repository\global"
pnpm config set global-bin-dir "D:\Program Files\pnpm-repository\bin"
pnpm config set state-dir "D:\Program Files\pnpm-repository\state"
pnpm config set cache-dir "D:\Program Files\pnpm-repository\cache"
第三步:验证配置是否生效
cmd
arduino
pnpm config list
确认输出中所有路径都指向D盘的新位置,特别是:
ini
C:\Users\Administrator>pnpm config list
@jsr:registry=https://npm.jsr.io/
global-bin-dir=D:\Program Files\pnpm-repository\bin
global-dir=D:\Program Files\pnpm-repository\global
globalconfig=C:\Users\Administrator\AppData\Local\pnpm\config\rc
npm-globalconfig=D:\Program Files\nodejs\etc\npmrc
registry=https://registry.npmjs.org/
store-dir=D:\Program Files\pnpm-repository\store
user-agent=pnpm/10.24.0 npm/? node/v20.19.5 win32 x64
这个地方需要特别说明一下,当在第二步执行pnpm config set global-dir "D:\Program Files\pnpm-repository\global"等命令之后,且第四步的环境变量也已经配置完了,第五步重启终端,也测试成功了。然后当你关闭终端,再测试,比如pnpm config get global-bin-dir 时,输入undefined。这时候你需要删除C盘残留的pnpm:
arduino
pnpm config delete global-dir
pnpm config delete global-bin-dir
pnpm config delete store-dir
然后,再:
python
pnpm config set store-dir "D:\Program Files\pnpm-repository\store"
pnpm config set global-dir "D:\Program Files\pnpm-repository\global"
pnpm config set global-bin-dir "D:\Program Files\pnpm-repository\bin"
pnpm config set state-dir "D:\Program Files\pnpm-repository\state"
pnpm config set cache-dir "D:\Program Files\pnpm-repository\cache"
这时候就正常了。如果没有出现这种情况,那不需要进行处理。
第四步:配置系统环境变量(关键步骤)
这是最重要的一步,确保系统能找到pnpm命令:
-
Win + R 输入
sysdm.cpl打开系统属性 -
点击"高级"选项卡 → "环境变量"
-
在"系统变量"中点击"新建":
- 变量名:
PNPM_HOME - 变量值:
D:\Program Files\pnpm-repository\bin
- 变量名:
-
找到
Path变量,点击"编辑" → "新建",添加:%PNPM_HOME%或者不新建PNPM_HOME变量也行,直接在Path里面,新建一个,把路径写死。
第五步:重启终端并测试
必须要关闭CMD命令行窗口,重新打开CMD,不然刚刚的配置无法在你当前的命令行窗口生效。
cmd
makefile
# 测试1:检查pnpm命令是否正常
C:\Users\Administrator>pnpm -v
10.24.0
# 测试2:验证全局包位置
C:\Users\Administrator>pnpm root -g
D:\Program Files\pnpm-repository\global\5\node_modules
# 测试3:实际安装测试
C:\Users\Administrator>pnpm add -g typescript
#下载完之后
C:\Users\Administrator>pnpm list -g
Legend: production dependency, optional only, dev only
D:\Program Files\pnpm-repository\global\5
dependencies:
json-server 1.0.0-beta.3
typescript 5.9.3