Skip to main content
Benny的老巢 Logo
Overview

npm 全局包迁移教程:解决C盘空间不足的6种方法(2026年最新)

January 5, 2026
3 min read

如果你用 Node.js 开发有一段时间了,估计也遇到过这个问题:C 盘空间越来越紧张,而 npm 的全局包和缓存不知不觉就占了好几个 GB。

别担心,今天我们就聊聊怎么给 npm 搬家,从简单到进阶,总有一款适合你。


方法一:npm config 命令(最简单,推荐首选)

这是 npm 官方提供的方法,一行命令就能搞定。

查看当前配置

先看看 npm 现在把东西放在哪:

Terminal window
npm config ls -l

这会列出所有配置项,找到 prefixcache 这两个,就是全局包和缓存的位置。

修改路径

直接用 npm config set 命令修改:

Terminal window
# 修改全局包安装目录
npm config set prefix "D:\npm\global"
# 修改缓存目录
npm config set cache "D:\npm\cache"
# 或者一行搞定
npm config set prefix "D:\npm\global" && npm config set cache "D:\npm\cache"

就这么简单,npm 会自动在新路径下创建需要的目录。

其他配置

如果你想把所有 npm 相关的配置都移到一个地方:

Terminal window
npm config set userconfig "D:\npm\.npmrc"
npm config set globalconfig "D:\npm\npmrc"

方法二:直接编辑 .npmrc 文件

如果你喜欢手动配置,可以直接改 .npmrc 文件。

找到配置文件

先看看配置文件在哪:

Terminal window
npm config get userconfig
npm config get globalconfig

通常在用户目录下(C:\Users\你的用户名\.npmrc)。

编辑配置文件

用任意文本编辑器打开 .npmrc,添加或修改这几行:

prefix=D:\npm\node_global
cache=D:\npm\node_cache
# 可选:设置日志级别
loglevel=info
# 可选:设置淘宝镜像(国内推荐)
registry=https://registry.npmmirror.com/

保存后,npm 会自动读取新的配置。


方法三:环境变量法(系统级方案)

如果你想让所有用户都使用同一个路径,或者想通过环境变量统一管理,可以用这个方法。

Windows 系统环境变量

  1. Win + R,输入 sysdm.cpl

  2. 点击”高级”标签 → “环境变量”

  3. 在”用户变量”里添加:

    • 变量名NODE_PATH

    • 变量值D:\npm\node_global\node_modules

    • 变量名NPM_CONFIG_PREFIX

    • 变量值D:\npm\node_global

    • 变量名NPM_CONFIG_CACHE

    • 变量值D:\npm\node_cache

修改 Path 变量(重要!)

这个步骤很关键,否则你安装的全局命令会找不到。

在系统变量的 Path 里添加:

D:\npm\node_global

命令行临时设置

如果你只是临时想改一下路径,可以在命令行里设置:

Windows CMD:

Terminal window
set NPM_CONFIG_PREFIX=D:\npm\node_global
set NPM_CONFIG_CACHE=D:\npm\node_cache

PowerShell:

Terminal window
$env:NPM_CONFIG_PREFIX="D:\npm\node_global"
$env:NPM_CONFIG_CACHE="D:\npm\node_cache"

Linux/Mac:

Terminal window
export NPM_CONFIG_PREFIX=/path/to/npm/global
export NPM_CONFIG_CACHE=/path/to/npm/cache

注意:命令行设置只对当前会话有效,关闭终端就失效了。


方法四:手动迁移(适合想把旧数据也搬过去)

如果你已经安装了很多全局包,想把它们一起搬走,可以这么做。

第一步:创建新目录

Terminal window
mkdir D:\npm
mkdir D:\npm\node_global
mkdir D:\npm\node_cache
mkdir D:\npm\node_modules

第二步:迁移现有包

先看看全局包在哪:

Terminal window
npm root -g

然后复制到新位置(Windows):

Terminal window
xcopy "%APPDATA%\npm" "D:\npm\node_global" /E /H /C /I
xcopy "%APPDATA%\npm-cache" "D:\npm\node_cache" /E /H /C /I

第三步:修改 npm 配置

Terminal window
npm config set prefix "D:\npm\node_global"
npm config set cache "D:\npm\node_cache"

方法五:用 nvm 管理(最推荐,多版本开发必备)

如果你需要在多个 Node.js 版本之间切换,强烈推荐用 nvm(Node Version Manager)。

安装 nvm

Windows 用户下载:https://github.com/coreybutler/nvm-windows/releases

安装后,nvm 会自动管理不同版本的 Node.js 和 npm,你只需要设置 nvm 的根目录:

Terminal window
nvm root D:\nvm

设置镜像(国内推荐)

Terminal window
nvm node_mirror https://npmmirror.com/mirrors/node/
nvm npm_mirror https://npmmirror.com/mirrors/npm/

使用 nvm

Terminal window
# 安装 Node.js
nvm install 18
# 切换版本
nvm use 18
# 查看已安装版本
nvm list

nvm 会自动为每个 Node.js 版本管理独立的 npm 路径,非常方便。


方法六:注册表法(高级用户专用)

这个方法通过修改 Windows 注册表来设置 npm 配置,适合需要统一管理多台机器的场景。

操作步骤

  1. Win + R,输入 regedit
  2. 导航到:HKEY_CURRENT_USER\Environment
  3. 在右侧空白处,新建”字符串值”:
    • 名称:NPM_CONFIG_PREFIX
    • 值:D:\npm\node_global

⚠️ 注意:修改注册表有风险,操作前先备份!


完整配置流程(推荐做法)

如果你想要一个完整的解决方案,按照这个流程来:

第一步:创建目录结构

Terminal window
# 以管理员身份运行 PowerShell
mkdir D:\npm
mkdir D:\npm\node_global
mkdir D:\npm\node_cache
mkdir D:\npm\node_modules

第二步:设置 npm 配置

Terminal window
npm config set prefix "D:\npm\node_global"
npm config set cache "D:\npm\node_cache"
npm config set init-module "D:\npm\.npm-init.js"

第三步:设置环境变量

  1. 用户变量添加:

    • NODE_PATH = D:\npm\node_global\node_modules
  2. 系统变量 Path 添加:

    • D:\npm\node_global

第四步:重启终端

这一步很重要!环境变量修改后,必须重启终端才能生效。

第五步:验证配置

Terminal window
# 查看配置
npm config get prefix
npm config get cache
npm root -g
# 测试安装一个全局包
npm install -g yarn

检查一下 yarn 是不是安装到了 D:\npm\node_global\node_modules\yarn,如果是,说明配置成功了!


验证配置是否生效

用这几个命令检查一下:

Terminal window
# 查看所有配置
npm config ls -l
# 查看特定配置
npm config get prefix
npm config get cache
# 查看全局包路径
npm root -g
# 查看配置文件位置
npm config get globalconfig

常见问题解决

问题 1:权限不足

如果你遇到权限问题:

Terminal window
# 以管理员身份运行 PowerShell/CMD
# 或者修改目录权限
icacls "D:\npm" /grant "USERNAME:(OI)(CI)F"

问题 2:安装的全局命令找不到

这通常是 Path 环境变量的问题:

Terminal window
# 检查 Path 是否包含新路径
# Windows CMD
echo %PATH%
# PowerShell
$env:Path

确保 D:\npm\node_global 在 Path 里。

问题 3:想恢复默认设置

如果改乱了,可以恢复默认:

Terminal window
npm config delete prefix
npm config delete cache

或者直接删除 .npmrc 文件,npm 会使用默认配置。

问题 4:缓存出问题了

有时候缓存会出问题,可以强制清除:

Terminal window
npm cache clean --force

最佳实践建议

1. 使用 nvm 管理多版本

如果你需要在多个 Node.js 版本之间切换,用 nvm 是最方便的。它会自动为每个版本管理独立的 npm 路径。

2. 路径命名规范

建议用规范的目录结构:

D:\DevTools\
├── nodejs\
│ ├── global\
│ └── cache\
└── nvm\

这样以后找东西方便,也便于管理。

3. 备份配置文件

定期备份 .npmrc 文件:

Terminal window
# 备份配置
npm config list > npm_config_backup.txt

4. 项目级配置

如果你想让某个项目使用独立的 npm 配置,可以在项目根目录创建 .npmrc

prefix=./node_modules/.global
cache=./.npm-cache

这样这个项目的所有 npm 操作都会使用项目级的配置。


如果你只是想把 npm 的路径改一下,**方法一(npm config 命令)**是最简单、最直接的选择。

如果你需要管理多个 Node.js 版本,强烈推荐用 nvm,它会帮你省去很多麻烦。