手把手教你如何修改npm的全局安装路径

 更新时间:2025年04月27日 10:04:40   作者: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 目录下的模块)和可执行命令(如 webpackpm2)。
  • 文件结构示例
    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 首先检查 cacheD:\node_cache)中是否有该包的压缩文件(.tgz)。
    • 如果没有,则从远程仓库(如 npmjs.com 或淘宝镜像)下载一次,并将压缩包存入 cache
    • 如果已有缓存,则直接使用已有的 .tgz 文件。
  • 安装阶段

    • 从 cache 中的 .tgz 文件解压并安装到 prefixD:\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全局安装路径修改内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Node.js 异步异常的处理与domain模块解析

    Node.js 异步异常的处理与domain模块解析

    本篇文章主要介绍了Node.js 异步异常的处理与domain模块解析,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Node.js的项目构建工具Grunt的安装与配置教程

    Node.js的项目构建工具Grunt的安装与配置教程

    Grunt是为Node打造的项目构建工具,相当于C/C++世界中的makefile,可以执行像压缩、编译、单元测试、代码检查以及打包发布的任务,下面我们就来一起看一下Node.js的项目构建工具Grunt的安装与配置教程:
    2016-05-05
  • node工作线程worker_threads的基本使用

    node工作线程worker_threads的基本使用

    本文主要介绍了node工作线程worker_threads的基本使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • axios基本用法教程示例详解

    axios基本用法教程示例详解

    这篇文章主要为大家介绍了axios基本用法示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • npm install安装过程报错的实用解决办法

    npm install安装过程报错的实用解决办法

    最近做项目遇到npm install 的问题,下面这篇文章主要给大家介绍了关于npm install安装过程报错的实用解决办法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • Node.js与MongoDB构建后端评论系统实战指南

    Node.js与MongoDB构建后端评论系统实战指南

    Node.js作为一门基于Chrome V8引擎的JavaScript运行环境,它的非阻塞I/O模型和事件驱动架构使得它在处理大量并发连接方面表现优异,成为了构建网络应用的流行选择,本文讲述Node.js与MongoDB构建后端评论系统实战,感兴趣的朋友一起看看吧
    2025-04-04
  • 简单模拟node.js中require的加载机制

    简单模拟node.js中require的加载机制

    大家都知道Node 采用的模块化结构是按照 CommonJS 规范,模块与文件是一一对应关系,即加载一个模块,实际上就是加载对应的一个模块文件。这篇文章显示简单的介绍了nodejs中require的加载机制,而后简单的模拟require函数,有需要的朋友们下面来一起看看吧。
    2016-10-10
  • Node.js包管理器代理工具Verdaccio轻松创建管理本地npm包仓库

    Node.js包管理器代理工具Verdaccio轻松创建管理本地npm包仓库

    这篇文章主要为大家介绍了Node.js包管理器代理工具Verdaccio轻松创建管理本地npm包仓库的使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • 一文秒懂nodejs中的异步编程

    一文秒懂nodejs中的异步编程

    这篇文章主要介绍了深入理解nodejs中的异步编程,本文给大家介绍的非常想详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • npm 工具库 yenv使用简介

    npm 工具库 yenv使用简介

    这篇文章主要为大家介绍了npm 工具库 yenv使用简介,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05

最新评论