🏡前言:
在Web前端项目开发过程中,由于各种前端框架、插件 以及 Nodejs、Npm 的飞速更新,在项目新开发 或 对老项目进行更新维护时,有些项目版本的配置 和 当前Node、Npm环境不匹配,导致运行报错,甚至都无法启动。
Nvm的出现就是为了解决以上问题的,Nvm是一个Node.js版本管理器 ,为了解决Node各种版本存在不兼容问题,Nvm其实是让你在同一台机器上根据需要,安装 或 切换项目所对应的Node版本来适配项目。

一、下载nvm:
🚀下载地址:Releases · coreybutler/nvm-windows · GitHub
https://github.com/coreybutler/nvm-windows/releases
里面有nvm各种安装的式压缩文件,点击即可下载,这里整个过程都以windows环境为例:
- nvm-noinstall-v1.2.2.zip: 这个是绿色免安装版本,但是使用之前需要配置。
- nvm-setup-v1.2.2.zip:这个是安装包,下载之后点击安装,无需配置就可以使用(推荐)。
-
Source code(1.2.2.zip):zip压缩的源码。
- Source code(1.2.2.tar.gz):tar.gz的源码,一般用于*nix系统。
下载完成后 解压 nvm-setup.zip 文件,得到nvm安装文件,点击运行 nvm-setup.exe
注:如果需要其他或最新版本在GitHub中去下载:https://github.com/coreybutler/nvm-windows/tags
https://github.com/coreybutler/nvm-windows/tags
二、安装nvm:
1、这里以Windows v1.1.7版为例,其他版安装类似,下载完成后直接双击nvm-setup.exe,在弹出的界面中选择同意协议,然后点击下一步,来到设置nvm的安装目录界面

2、点击Next按扭后,来到设置Nodejs的安装存储目录界面

3.点击Next按扭后,来到Nvm正式界面,执行安装,等待完成即可

到此nvm的安装就OK了。
nvm在安装成功后,会帮我们配置好环境变量(就是在电脑中的任何目录下都可以使用nvm命令)。

所以在任意目录中的空白处 按住Shift键不放,鼠标点击右键,在弹出的菜单中选择 “在此处打开 Powershell 窗口(S)”。

在弹出的命令窗口中输入相关命令,如:查看nvm版本号、Node.js版列表、nvm命令说明等:
# 查看当前nvm版本
nvm version
# 查看远程可安装的NodeJS版本
nvm list available
# 查看nvm的相关指令
nvm help

三、使用Nvm安装Node.js环境
在安装Node.js版本的时候,尽量选用后面带有(LTS (Long-Term Support,长期支持)稳定可靠的版本),关于哪些Node版本是LTS版可以去下面这个Node.js官网查看:Node.js — 下载 Node.js® (nodejs.org)
https://nodejs.org/zh-cn/download/package-manager
👉温馨提示:
1、由于Node.js是外网环境,在安装前如果有 科学上网工具 的要提前开启!
2、安装下载的速度是根据网速情况而定,一般用时5分钟及以上都是正常的!
安装命令如下:(这里以安装Node.js v24.16.0版本为例)
nvm install 24.16.0
在执行以上安装命令后,会提示:Downloading node.js version 24.16.0 (64-bit)... 就表示开始进入下载安装过程中啦!
📢注意:
1、在安装过程中,千万不能关闭这个安装的命令行工具窗口!
2、由于是外部网络,用时5分钟及以上都是很正常的,请耐心点!请耐心点!
3、一般都是先下载安装好Node.js后,就会自动下载安装Npm包管理工具的!

当安装完成后,会在我们指定的nvm安装目录,如:D:\Nvm目录中出现对应的Node.js版本啦(注:D:\Nvm目录就是上面在安装nvm时自定义的目录)!

这是Node.js版本目录中的内容:

查看己安装的Node.js版本 或 切换 Node.js 环境:

查看切换Node.js版本后的存放路径:

🔔注意:在使用Nvm安装Node.js环境时,由于外网问题,导致Npm包管理工具有可能会安装失败,有以下两个解决方案:
🍀1、也可以全局共享Npm包,具体方法,在下面第五点会说到。
🍀2、自己去官网下载对应版本的Npm包,具体方法,在后面的第七点下的第2节会说到。
四、配置 Npm 镜像代理
由于Npm的包管理仓库默认是在国外的,所以在下载安装相关Npm依赖的时候是非常慢的,甚至就不能安装、直接报错等,然而,我们可以通过使用国内的淘宝镜像(每10分钟从原npm仓库同步一次)来安装,这样在安装Npm包时就会快很多啦!
常用的如:淘宝镜像:https://npmmirror.com
https://npmmirror.com/
当然类似的镜像代理还有很多,比如:
阿里云镜像:
npm config set registry https://registry.npm.aliyun.com/
华为云镜像:
npm config set registry https://registry.huaweicloud.com/
注:如果Npm还没有安装好的话,可以等Npm安装好以后再来添加像代理!(当然如果你的网速很好或能科学上网的话,这里就可直接跳过)
- 查看npm配置列表:
npm config list
- 只查看npm镜像地址:【默认npm镜像:https://registry.npmjs.org/】
npm config get registry
- 配置npm镜像:
# 配置npm镜像地址:
npm config set registry https://registry.npm.taobao.org
# 清空npm缓存(新安装跳过)
npm cache clean --force
# 扩展:配置cnpm镜像地址:
npm install -g cnpm --registry=https://registry.npm.taobao.org
# 注意:如果要还原默认官方的npm镜像
npm config set registry https://registry.npmjs.org
- 配置nvm镜像:
在nvm安装目录,找到 setting.txt 文件加上如下两行配置:
# 配置node镜像:
node_mirror: https://npmmirror.com/mirrors/node/
# 配置npm镜像:
npm_mirror: https://npmmirror.com/mirrors/npm/
添加后的setting.txt文件内容
root: C:\Users\MuGuiLin\AppData\Roaming\nvm
path: C:\Program Files (x86)\nodejs
node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/
五、全局共享Npm(非必要):
一般在使用nvm安装的Node.js环境的时候,默认Npm也会自动一起安装的。由于Nvm可以管理多个版本的Node.js环境,如果每次添加一个Node版本都要安装一堆Npm包就烦锁了(这是根据自己的使用情况而定的),所以可以将Npm全局共享出来,只需全局(在安装模块时 npm i xxx -g )加上-g, 就可以让各个版本的node共用就OK了。
Npm全局安装目录也是可以修改的:使用:npm config set prefix "要设置的路径" 命令就可以修改!
// 默认全局的npm安装目录:C:\Users\Administrator\AppData\Roaming\npm
npm config set prefix "C:\Users\Administrator\AppData\Roaming\npm"
// 默认全局的npm缓存目录:C:\Users\Administrator\AppData\Roaming\node_cache
npm config set cache "C:\Users\Administrator\AppData\Roaming\node_cache"
用 npm root -g 命令,可以查看全局默认npm包的存储位置。
然后将Npm包的路径添加到用户环境变量中,就实现Npm全局共享啦!具体步骤如下图提示以操作即可!

注:环境变量在设置完成以后,一定要重新启动 或 注销一下电脑,环境变量才能生效哦!!
六、Nvm常用指令:
-
【查看版本】:
| 命令 | 说明 |
|---|---|
| nvm version | 查看nvm版本 |
| nvm ls | 查看所有已经安装的Nodejs版本 |
| nvm list installed | 查看所有已经安装的Nodejs版本 |
| nvm ls available | 查看运程线上所有版本(列出所有可以安装的node版本号) |
| nvm root | 查看nvm安装路径 |
| nvm arch | 查看节点是否以32位或64位模式运行 |
| nvm current | 查看当前node版本 |
| nvm proxy | 查看设置与代理 |
-
【安装版本】:
| 命令 | 说明 |
|---|---|
| nvm install latest | 安装最新稳定版Nodejs |
| nvm install 12.18.0 | 安装指定版本 |
| nvm uninstall 12.18.0 | 卸载指定 12.18.0版本 |
-
【切换版本】:
| 命令 | 说明 |
|---|---|
| nvm use 版本号 | 切换版本(这个是全局的) |
| 例如: nvm use 18.20.3 | 表示:切换到18.20.3版本 |
-
【其他命令】:
| 命令 | 说明 |
|---|---|
| nvm alias default node | 设置默认版本为最新版本 |
| nvm on | 启用node.js版本管理 |
| nvm off | 禁用node.js版本管理 |
| nvm proxy [url] | 设置用于下载的代理。将[url]留空以查看当前代理。 将[url]设置为“无”以删除代理 |
七、可能遇到的问题:
📢问题1、用Npm安装xxx插件后,在使用时出现如下:
错误1:无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本,有关详细信息请参阅。。。!
错误2:xxx在使用时出现:无法将“xxx”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。

📢问题原因:
1、执行策略权限不足(执行不信任的脚本),执行策略默认是 Restricted
2、没有配置全局npm的环境变量
解决办法1:执行策略权限
1、用快捷键:Win + X,选择 Windows Power Shell(管理员)(A) ,以管理员身份打开Power Shell。
2、在打开的打开Power Shell窗口中输入命令:set-executionpolicy remotesigned
3、然后输入 Y,按回车键,问题解决。

解决办法2:给全局Npm配置系统环境变量
1、查看全局npm的存放目录路径,用 npm root -g 命令
npm root -g
C:\Users\Administrator\AppData\Roaming\npm # 这个就是全局npm的存放路径
2、配置系统环境变量

3、配置完成后,重启电脑 或 重新打开一个命令窗口测试即可!
📢问题2、当用nvm安装/切换到指定的某个Node.js版本后,Npm命令无法使用(找不到Npm):

📢问题原因:
1、在使用nvm安装指定的Node.js版本时,因外网问题,导致Npm包管理工具安装失败,我们只需去下载Node.js对应版本的Npm工具包即可!
解决办法:手动下载安装
1、查看全局nvm的Node.js版本管理存放目录路径,在命令行工具窗口中输入如下命令:
nvm root

2、打开nvm的Node.js版本管理存放目录,下载对应的Npm版本,放到nvm管理目录对应的Node.js版本目录下的node_modules目录中即可!
下载Npm工具包:
Node.js 英文对应的 Npm 版本 和 下载地址
https://nodejs.org/en/about/previous-releases

注:下载下来的是版本对应完整的Node.js环境 和 Npm工具包,可以全部拷贝过去覆盖,也可以只拷贝node_modules目录下的npm文件夹,需要注意的是,如果只拷贝npm文件夹,还需要将和node_modules同级目录中与npm相关的文件,如:npm、npm.cmd、npm.ps1文件也一起拷贝到对应的目录,如果觉得麻烦,就将整个Node.js环境文件和node_modules目录全部都拷贝过去覆盖nvm中对应版本即可。

3、当完成以上步骤后,我们在再到命令行工具中输入 npm -v 命令时,就有npm啦(注:在Npm安装后以后,记得要重新打开一个新有命令窗口输入查看执行,如果直接在原来的命令窗口中执行命令可能还是没有哦)!!

📢问题3、当你成功的下载了对应的Npm版本,也正确放到nvm管理目录对应的Node.js版本目录下的node_modules目录后。
提示“npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1。未对文件 C:\Program Files\nodejs\npm.ps1 进行数字签名。。。”:

📢问题原因:
由于Windows系统的PowerShell 执行策略设置为不允许运行未签名的脚本。但是Node.js 和 Npm 的安装脚本通常需要 PowerShell 来执行一些配置(默认情况下,出于安全考虑,PowerShell有一个叫做“执行策略”的设置,它可以限制脚本的执行),因此需要调整 PowerShell 的执行策略以允许运行脚本即可!
解决办法:更改执行策略
在命令窗口中执行如下命令,来给当前用户赋予权限,并更改执行策略(允许运行未签名的脚本):
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass

八、其他相关问题:
📢问题1:
在团队项目开发过程中,如果开发成员的npm包管理工具版本不一致,或网络不佳等情况(因为各npm版本之间存在兼容性问题,网络不稳定问题等)时,导致在安装项目依赖 执行npm install 命令时报错如下:
ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
解决办法1:
可通过升级 或 降级 指定的 npm 版本来处理该问题: 【注:@后面是自定义的版本号】,将安装命令 npm install 改为如下:
npx -p npm@6 npm i --legacy-peer-deps
解决办法2:
可通yarn来安装(前提条件需要先安装好yarn工具):
# 安装yarn工具
npm install -g yarn
# 安装项目依赖
yarn install
# 安装指定依赖(这里以安装 live-server 为例)
yarn add live-server
解决办法3:
可通pnpm来安装(前提条件需要先安装好pnpm工具):
# 安装pnpm工具
npm install pnpm -g
# 安装项目依赖
pnpm install
# 安装指定依赖(这里以安装 live-server 为例)
pnpm add live-server
📢问题2:
使用 npm 或 yarn 安装项目依赖包时,报错导致在安装执行npm install 命令时报错如下:
error An unexpected error occurred: "https://registry.npmmirror.com......:unable to get local issuer certificate".
info If you think this is a bug...
解决办法:
# npn
npn config set "strict-ssl" false -g
# yarn
yarn config set "strict-ssl" false -g
📢问题3:
使用npm install yarn -D 来安装yarn工具后,在使用npm 或 yarn 命令时报如下错【这里和上面的第七项中的📢问题3类似】:
npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink
yarn : 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
问题出现原因:这个错误是由于系统的执行策略(Execution Policy)导致的。Windows系统默认情况下会限制PowerShell脚本的执行,而npm在执行时可能会涉及到PowerShell脚本的操作。
解决办法:
只需修改执行策略的范围即可,在开始菜单中搜索PowerShell以管理员身份打开命令行工具,执行如下命令:
set-ExecutionPolicy RemoteSigned
或
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
然后选择 Y 或 按Enter回车键表示确认执行。

本文详细介绍NVM的安装与使用方法,包括如何通过NVM安装、切换不同版本的Node.js,配置NPM镜像代理加速包下载,以及解决常见问题如NPM权限和环境变量配置。

41万+

被折叠的 条评论
为什么被折叠?



