nvm(管理Node版本)、nrm(管理镜像源) 详解

一、nvm 详解

在工作中,我们可能同时在进行2个或者多个不同的项目开发,每个项目的需求不同,进而不同项目必须依赖不同版本的NodeJS运行环境,这种情况下,对于维护多个版本的node将会是一件非常麻烦的事情,nvm就是为了解决这个问题而产生的,他可以方便的在同一台设备上进行多个node版本之间切换。

1.什么是nvm

NodeVersionManager(NVM)在处理多项目中不同Node.js版本需求的解决方案。NVM允许轻松切换版本,包括下载远程LTS版本、Windows安装步骤、配置淘宝镜像、基本使用命令及常见操作。对于Node.js开发者来说,NVM简化了版本管理,提高工作效率。

为什么使用 NVM?

NVM 允许用户:

  • 使用简单的命令在本地下载任何远程长期支持 (LTS) 版本的 Node.js。
  • 直接从命令行在 Node.js 的多个版本之间轻松切换。
  • 设置别名以轻松在不同下载版本的 Node.js之间切换。

2.下载、安装

nvm同时支持Linux和macOS;我这里是在Windows上操作

2.1卸载 Node

1、若之前已安装 Node,则需要先卸载

确保已删除 Node 的安装目录以及相关环境变量

2、之后可以检查以下文件是否存在,若存在也删除:

(此处默认安装路径为C:\Program Files\nodejs)

  • C:\Program Files\nodejs
  • C:\Program Files (x86)\nodejs
  • C:\Users\{User}\AppData\Roaming\npm
  • C:\Users\{User}\AppData\Roaming\npm-cache

3、cmd命令行检测系统中是否还存在nodejs

javascript 复制代码
C:\>node -v
2.2下载nvm

GitHub下载:Releases · coreybutler/nvm-windows · GitHub

下载exe能自动配置环境变量

傻瓜式一直点击下一步即可安装。

安装完成后,可以打开cmd命令行窗口。执行

nvm -v

就可以看见nvm的版本号啦!

2.3配置环境变量

安装完毕后,找到安装的路径,一些简单配置,

(**如果是默认安装在c盘的。就可以跳过。**如果是安装在其他盘的、则需要配置相应的环境变量)

怎样打开环境变量?

打开我的电脑==》右键》属性》高级系统设置》环境变量

在环境变量里就可以看见nvm的路径。如果是安装在其他盘的。就去找到对应的安装路径修改即可。

如果安装nvm的文件夹里没有nodejs这个文件夹的话,可以自己手动新建一个空的nodejs文件夹即可。

2.4配置淘宝镜像

使用npm的同学应该都知道,使用淘宝镜像安装比较快。

npm(Node Package Manager)是 Node.js 的包管理器,用于安装、管理、卸载 JavaScript 模块。npm 提供了一个包管理器,使得开发者可以方便地使用第三方模块,同时也可以将自己编写的模块发布到 npm 上供其他人使用。

我们先找到nvm所在文件位置,点开setting

里面的配置。原本只有2行代码。我们只需要在最后面追加2行代码即可:

javascript 复制代码
node_mirror: http://npmmirror.com/mirrors/node/
npm_mirror: http://registry.npmmirror.com/mirrors/npm/

如图所示:

然后保存关闭。

3.nvm使用

打开cmd

执行以下命令:

nvm ls // 看安装的所有node.js的版本

nvm list available // 查显示可以安装的所有node.js的版本

注意:

pnpm 至少支持的node版本为: 18.12

node的17+存在一些独特之处,不建议使用

可以在可选列表里。选择任意版本安装,比如安装16.15.0

执行:

nvm install 16.15.0

nvm uninstall 版本号 卸载对应node版本(如:nvm uninstall 17.2.0)

安装好了之后。可以执行:

nvm ls

可以在列表里看到这个版本:

如果想使用16.15.0这个版本的话。就执行:

nvm use 16.15.0

然后执行:

node -v

就可以看到当前版本已经是16.15.0了

常用命令:
javascript 复制代码
nvm off                     // 禁用node.js版本管理(不卸载任何东西)
nvm on                      // 启用node.js版本管理
nvm install <version>       // 安装node.js的命名 version是版本号 例如:nvm install 8.12.0
nvm uninstall <version>     // 卸载node.js是的命令,卸载指定版本的nodejs,当安装失败时卸载使用
nvm ls                      // 显示所有安装的node.js版本
nvm list available          // 显示可以安装的所有node.js的版本
nvm use <version>           // 切换到使用指定的nodejs版本
nvm v                       // 显示nvm版本
nvm install stable          // 安装最新稳定版
javascript 复制代码
nvm命令行操作命令
1,nvm nvm list 是查找本电脑上所有的node版本
 
- nvm list 查看已经安装的版本
- nvm list installed 查看已经安装的版本
- nvm list available 查看网络可以安装的版本
 
2,nvm install 安装最新版本nvm
 
3,nvm use <version> ## 切换使用指定的版本node
 
4,nvm ls 列出所有版本
 
5,nvm current 显示当前版本
 
6,nvm alias <name> <version> ## 给不同的版本号添加别名
 
7,nvm unalias <name> ## 删除已定义的别名
 
8,nvm reinstall-packages <version> ## 在当前版本node环境下,重新全局安装指定版本号的npm包
 
9,nvm on 打开nodejs控制
 
10,nvm off 关闭nodejs控制
 
11,nvm proxy 查看设置与代理
 
12,nvm node_mirror [url] 设置或者查看setting.txt中的node_mirror,如果不设置的默认是 https://nodejs.org/dist/
  nvm npm_mirror [url] 设置或者查看setting.txt中的npm_mirror,如果不设置的话默认的是: https://github.com/npm/npm/archive/.
 
13,nvm uninstall <version> 卸载制定的版本
 
14,nvm use [version] [arch] 切换制定的node版本和位数
 
15,nvm root [path] 设置和查看root路径
 
16,nvm version 查看当前的版本

在做项目的时候。不同的项目使用的nodejs版本可能不一样。我们可以在配置文件里看见:

由于nodejs版本和npm版本的不同。导致项目无法运行。所以我们就需要用到nvm这个工具了!

二、nrm 详解

1.什么是nrm

nrm(npm registry manager)是一个 npm 源管理器,允许你快速地在 npm源间切换。

什么意思呢,npm默认情况下是使用npm官方源(使用npm config ls命令可以查看),在国内用这个源肯定是不靠谱的,一般我们都会用淘宝npm源:https://registry.npm.taobao.org/,修改源的方式也很简单,在终端输入:

javascript 复制代码
npm set registry https://registry.npm.taobao.org/

再npm config ls查看,已经切换成功。

javascript 复制代码
// 查看当前使用的镜像
npm config get registry

那么,问题来了,如果哪天你又跑去国外了,淘宝源肯定是用不了的,又要切换回官网源,或者哪天你们公司有自己的私有npm源了,又需要切换成公司的源,这样岂不很麻烦?于是有了nrm。

2.nrm安装

javascript 复制代码
npm install -g nrm

查看版本

javascript 复制代码
nrm -V

3.nrm使用

3.1查看可选源 星号代表当前使用源

javascript 复制代码
nrm ls

查看当前源

javascript 复制代码
nrm current

3.2 切换源

javascript 复制代码
nrm use <registry>

其中,registry为源名。

比如:切换为taobao源

javascript 复制代码
nrm use taobao

4.添加源

javascript 复制代码
nrm add <registry> <url>

其中,registry为源名,url为源地址。

比如:添加一个公司私有的npm源,源地址为:http://192.168.22.11:8888/repository/npm-public/,源名为cpm(随意取)。

javascript 复制代码
nrm add cpm http://192.168.22.11:8888/repository/npm-public/

然后,查看是否添加成功

nrm login 登录镜像

5.删除源

javascript 复制代码
nrm del <registry>

其中,registry为源名。

比如:删除刚才添加的cpm源

javascript 复制代码
nrm del cpm

6.测试源速度

nrm test

其中,registry为源名。

比如:测试官方源和淘宝源的响应时间

javascript 复制代码
nrm test npm
javascript 复制代码
nrm test taobao