一、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