pnpm老是默认把包安装在C盘很头疼?教你快速配置pnpm的全局目录

背后

我的电脑只分了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命令:

  1. Win + R 输入 sysdm.cpl 打开系统属性

  2. 点击"高级"选项卡 → "环境变量"

  3. 在"系统变量"中点击"新建":

    • 变量名:PNPM_HOME
    • 变量值:D:\Program Files\pnpm-repository\bin
  4. 找到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
相关推荐
forestsea1 小时前
现代 JavaScript 加密技术详解:Web Crypto API 与常见算法实践
前端·javascript·算法
Cache技术分享1 小时前
254. Java 集合 - 使用 Lambda 表达式操作 Map 的值
前端·后端
CryptoPP1 小时前
使用 KLineChart 这个轻量级的前端图表库
服务器·开发语言·前端·windows·后端·golang
p***43482 小时前
前端路由管理
前端
是一碗螺丝粉2 小时前
React Native 运行时深度解析
前端·react native·react.js
Jing_Rainbow2 小时前
【前端三剑客-9 /Lesson17(2025-11-01)】CSS 盒子模型详解:从标准盒模型到怪异(IE)盒模型📦
前端·css·前端框架
爱泡脚的鸡腿2 小时前
uni-app D6 实战(小兔鲜)
前端·vue.js
青年优品前端团队2 小时前
🚀 不仅是工具库,更是国内前端开发的“瑞士军刀” —— @qnvip/core
前端