手把手教你如何修改npm的全局安装路径
作者:2301_79940491
这篇文章主要介绍了如何修改npm全局安装路径的相关资料,通过详细图文讲解了如何创建自定义路径、配置npm全局路径和缓存路径、验证配置、配置环境变量、测试配置以及其他可选配置,需要的朋友可以参考下
前言
修改 npm 的全局安装路径可以通过以下步骤完成,确保全局包(使用 -g 安装的模块)和缓存文件存储到自定义路径。以下是详细步骤:
1. 创建自定义路径的目录
在目标路径下创建两个文件夹,分别用于存储全局模块和缓存文件:

2. 配置 npm 的全局路径和缓存路径
使用 npm config 命令修改全局安装路径和缓存路径:
# 设置全局模块的安装路径(prefix) npm config set prefix "D:\soft\node_repository\node_global" # 设置缓存路径(cache) npm config set cache "D:\soft\node_repository\node_cache"
3. 验证配置是否生效
执行以下命令检查配置是否成功:
# 查看全局安装路径 npm config get prefix # 查看缓存路径 npm config get cache

4. 配置环境变量(关键步骤)
为了让系统识别全局安装的命令(如 npm 全局包的可执行文件),需要将新路径添加到 环境变量 中:
⑴:添加 PATH 环境变量
Windows 操作步骤:
右击此电脑 → 点击“属性” → “高级系统设置” → “环境变量”。
在“系统变量”中找到 Path 变量,点击“编辑”。
新增以下路径:
D:\soft\node_repository\node_global(全局模块的根目录)
D:\soft\node_repository\node_global\node_modules\.bin(全局模块的可执行文件目录)
点击确定保存。


⑵.(可选但推荐):设置 NODE_PATH
如果全局模块需要被 Node.js 项目直接引用,添加 NODE_PATH 环境变量:
- 在“系统变量”中新建变量:
- 变量名:
NODE_PATH - 变量值:
D:\soft\node_repository\node_global\node_modules
- 变量名:

5. 测试配置
⑴ 安装一个全局包
npm install -g pm2 # 例如安装 pm2
- 检查安装路径:
D:\soft\node_repository\node_global\node_modules下应出现pm2目录。


⑵.验证命令是否生效
pm2 -v # 应显示 pm2 的版本号

6. 其他可选配置(提升体验)
⑴ 设置淘宝镜像加速下载
npm config set registry https://registry.npmmirror.com
⑵.检查完整配置
npm config list # 查看所有 npm 配置

prefix(全局路径)和 cache(缓存路径)的区别
(1) prefix(全局路径,如 D:\node_global)
- 存储内容:已安装的全局 npm 包的最终版本。
- 作用:存放通过
npm install -g安装的完整包文件(如node_modules目录下的模块)和可执行命令(如webpack、pm2)。 - 文件结构示例:
D:\node_global\ ├── node_modules\ │ ├── package1@1.0.0\ │ ├── package2@2.3.1\ │ └── ... └── node_modules\.bin\ ├── executable1.exe └── executable2.sh
(2) cache(缓存路径,如 D:\node_cache)
- 存储内容:下载的包的原始压缩文件(
.tgz)和元数据(如哈希校验值、索引文件)。 - 作用:临时存储下载的包,供后续安装时快速复用,避免重复下载。
- 文件结构示例:
D:\node_cache\ ├── _cacache\ │ ├── content-v2\ # 存储原始 .tgz 包(二进制文件) │ ├── index-v5\ # 存储元数据(如包的哈希值、下载时间等) │ └── tmp\ # 临时文件 └── ...其他配置文件
为什么不会“下载两份”?
npm 的安装流程如下,不会重复下载包:
下载阶段:
- 当执行
npm install -g package时,npm 首先检查cache(D:\node_cache)中是否有该包的压缩文件(.tgz)。 - 如果没有,则从远程仓库(如 npmjs.com 或淘宝镜像)下载一次,并将压缩包存入
cache。 - 如果已有缓存,则直接使用已有的
.tgz文件。
- 当执行
安装阶段:
- 从
cache中的.tgz文件解压并安装到prefix(D:\node_global),生成可执行的模块和命令。 - 同一个包的
.tgz文件只会在cache中存储一份,而安装后的解压文件会存放到prefix。
- 从
具体例子说明
假设你全局安装了 pm2:
- 缓存路径
D:\node_cache:- 存储
pm2的原始.tgz文件(如pm2-5.3.0.tgz)和元数据。
- 存储
- 全局路径
D:\node_global:- 存储解压后的
pm2模块文件(如node_modules/pm2)和可执行文件(如pm2.cmd)。
- 存储解压后的
关键点:
.tgz文件只存在于cache,而解压后的文件存在于prefix。- 如果再次安装
pm2,npm 会直接从cache中读取.tgz,无需重新下载,但会再次解压到prefix(如果版本不同或需要更新)。
为什么需要分开这两个路径?
- 职责分离:
cache是临时存储区,用于加速安装。prefix是最终安装路径,存放可直接使用的模块和命令。
- 灵活性:
- 可以将
cache放在高速存储(如 SSD),prefix放在大容量存储(如 HDD)。 - 可以独立清理
cache(节省空间),而不会影响已安装的全局模块。
- 可以将
总结
prefix:存放已安装的全局模块(长期保留)。cache:存放下载的原始包文件(临时缓存)。- 不会重复下载:同一个包的
.tgz文件只会在cache中存储一份,安装时仅解压到prefix。
到此这篇关于如何修改npm的全局安装路径的文章就介绍到这了,更多相关npm全局安装路径修改内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
