手把手教你如何修改npm的全局安裝路徑
前言
修改 npm 的全局安裝路徑可以通過以下步驟完成,確保全局包(使用 -g 安裝的模塊)和緩存文件存儲到自定義路徑。以下是詳細步驟:
1. 創(chuàng)建自定義路徑的目錄
在目標路徑下創(chuàng)建兩個文件夾,分別用于存儲全局模塊和緩存文件:

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. 驗證配置是否生效
執(zhí)行以下命令檢查配置是否成功:
# 查看全局安裝路徑 npm config get prefix # 查看緩存路徑 npm config get cache

4. 配置環(huán)境變量(關鍵步驟)
為了讓系統(tǒng)識別全局安裝的命令(如 npm 全局包的可執(zhí)行文件),需要將新路徑添加到 環(huán)境變量 中:
⑴:添加 PATH 環(huán)境變量
Windows 操作步驟:
右擊此電腦 → 點擊“屬性” → “高級系統(tǒng)設置” → “環(huán)境變量”。
在“系統(tǒng)變量”中找到 Path 變量,點擊“編輯”。
新增以下路徑:
D:\soft\node_repository\node_global(全局模塊的根目錄)
D:\soft\node_repository\node_global\node_modules\.bin(全局模塊的可執(zhí)行文件目錄)
點擊確定保存。


⑵.(可選但推薦):設置 NODE_PATH
如果全局模塊需要被 Node.js 項目直接引用,添加 NODE_PATH 環(huán)境變量:
- 在“系統(tǒng)變量”中新建變量:
- 變量名:
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(緩存路徑)的區(qū)別
(1) prefix(全局路徑,如 D:\node_global)
- 存儲內容:已安裝的全局 npm 包的最終版本。
- 作用:存放通過
npm install -g安裝的完整包文件(如node_modules目錄下的模塊)和可執(zhí)行命令(如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)和元數據(如哈希校驗值、索引文件)。 - 作用:臨時存儲下載的包,供后續(xù)安裝時快速復用,避免重復下載。
- 文件結構示例:
D:\node_cache\ ├── _cacache\ │ ├── content-v2\ # 存儲原始 .tgz 包(二進制文件) │ ├── index-v5\ # 存儲元數據(如包的哈希值、下載時間等) │ └── tmp\ # 臨時文件 └── ...其他配置文件
為什么不會“下載兩份”?
npm 的安裝流程如下,不會重復下載包:
下載階段:
- 當執(zhí)行
npm install -g package時,npm 首先檢查cache(D:\node_cache)中是否有該包的壓縮文件(.tgz)。 - 如果沒有,則從遠程倉庫(如 npmjs.com 或淘寶鏡像)下載一次,并將壓縮包存入
cache。 - 如果已有緩存,則直接使用已有的
.tgz文件。
- 當執(zhí)行
安裝階段:
- 從
cache中的.tgz文件解壓并安裝到prefix(D:\node_global),生成可執(zhí)行的模塊和命令。 - 同一個包的
.tgz文件只會在cache中存儲一份,而安裝后的解壓文件會存放到prefix。
- 從
具體例子說明
假設你全局安裝了 pm2:
- 緩存路徑
D:\node_cache:- 存儲
pm2的原始.tgz文件(如pm2-5.3.0.tgz)和元數據。
- 存儲
- 全局路徑
D:\node_global:- 存儲解壓后的
pm2模塊文件(如node_modules/pm2)和可執(zhí)行文件(如pm2.cmd)。
- 存儲解壓后的
關鍵點:
.tgz文件只存在于cache,而解壓后的文件存在于prefix。- 如果再次安裝
pm2,npm 會直接從cache中讀取.tgz,無需重新下載,但會再次解壓到prefix(如果版本不同或需要更新)。
為什么需要分開這兩個路徑?
- 職責分離:
cache是臨時存儲區(qū),用于加速安裝。prefix是最終安裝路徑,存放可直接使用的模塊和命令。
- 靈活性:
- 可以將
cache放在高速存儲(如 SSD),prefix放在大容量存儲(如 HDD)。 - 可以獨立清理
cache(節(jié)省空間),而不會影響已安裝的全局模塊。
- 可以將
總結
prefix:存放已安裝的全局模塊(長期保留)。cache:存放下載的原始包文件(臨時緩存)。- 不會重復下載:同一個包的
.tgz文件只會在cache中存儲一份,安裝時僅解壓到prefix。
到此這篇關于如何修改npm的全局安裝路徑的文章就介紹到這了,更多相關npm全局安裝路徑修改內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Node.js與MongoDB構建后端評論系統(tǒng)實戰(zhàn)指南
Node.js作為一門基于Chrome V8引擎的JavaScript運行環(huán)境,它的非阻塞I/O模型和事件驅動架構使得它在處理大量并發(fā)連接方面表現優(yōu)異,成為了構建網絡應用的流行選擇,本文講述Node.js與MongoDB構建后端評論系統(tǒng)實戰(zhàn),感興趣的朋友一起看看吧2025-04-04
Node.js包管理器代理工具Verdaccio輕松創(chuàng)建管理本地npm包倉庫
這篇文章主要為大家介紹了Node.js包管理器代理工具Verdaccio輕松創(chuàng)建管理本地npm包倉庫的使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-10-10

