nvm安装与配置

12,885 阅读9分钟

前言

nvm安装与配置流程

其中2、3步骤不分先后。建议先配置环境变量

为了正确安装使用nvm,请先卸载安装过的node和nvm,如果不知道怎么彻底卸载和清除,请看文章《多版本node安装相关的知识-卸载node》后再继续来到这个步骤

1. 下载nvm

进入官网下载链接:github.com/coreybutler… ,windows系统下载nvm-setup.zip安装包

image.png

2. 解压nvm压缩包

找到下载好的压缩包

image.png

解压后会得到这个exe安装程序

image.png

3. nvm安装

3.1、同意协议

如果电脑上之前已经单独安装了node,先卸载,然后解压nvm-setup.zip安装包,进入解压的文件夹,双击exe后缀文件进行安装

3.2、选择nvm安装路径

下面这个界面是选择安装nvm的路径,自己可以更改安装路径,一般默认路径

3.3、选择node安装路径

下面这个是nodejs的安装位置,如果没有nodejs文件夹就新建一个(后来发现他会自动生成一个快捷方式),我安装在nvm文件夹内,这个是因为如果电脑是公司的,有些公司会限制一些操作,不能随意更改覆盖文件导致nvm切换命令成功但是效果不成功。后期只需要更改文件夹名称就可以切换node达到多版本。

3.4、安装确认

3.5、 安装完成

3.6、 查看刚安装完nvm的目录

image.png

3.7、 查看版本

安装完毕后输入 nvm -v 查看版本。

image.png

如果你是直接使用git来操作命令行出现如下弹窗,请使用cmd或者powershell

image.png 如果出现命令行未定义,请重启电脑,特别是windows的,,,,ememem

4.手动添加环境变量

一般安装完成之后,环境变量是默认给配置好的,例如以下是我的环境变量:

image.png

如果发现变量未定义,请手动添加变量到环境变量里,在用户变量或者系统变量添加。注意path变量中添加%NVM_HOME%和%NVM_SYMLINK%时需要按顺序

流程

  • NVM_HOME值为nvm的安装路径
  • NVM_SYMLINK值为nvm指定的nodejs的安装路径
  • Path变量中按顺序添加%NVM_HOME%%NVM_SYMLINK%

进入电脑环境变量界面

新人请看,。。。。。。啰嗦点,但是我是从新人过来的,我一开始就是不知道在哪里修改环境变量啊

选择电脑图标,右键鼠标选择“属性”

d513182804450714b30de3ac2f464db6.png 进入电脑“关于”界面的右侧高级属性设置(我的电脑是win10版本的,win11狗都不用)

image.png

进入电脑的高级栏选择环境变量

image.png

4.1 添加NVM_HOME值为nvm的安装路径

4.2 添加NVM_SYMLINK值为nvm指定的nodejs的安装路径

4.3 Path变量中添加%NVM_HOME%%NVM_SYMLINK%

4.4 最后配置完环境变量的效果

配置后重新点击应用(我这里应用过了没有可更新的,应用按钮置灰不可操作),重新运行查看版本的命令,如果还是提示命令未定义,(windows一般都需要进行重启大法)

5. 配置nvm的下载镜像

请注意,我们不是在配置npm下载依赖包的代理镜像,而是配置nvm下载npm和nodejs版本的下载源, npm下载镜像regestry我们会在下一节npm配置中进行讲解。

nvm 的github官网上也提到了,我们中国国内可以修改以下node_mirror、npm_mirror属性 image.png

流程

  • 找到setting.txt配置文件
  • 备份setting.txt文件
  • 添加或修改node_mirror、npm_mirror如下
node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/

5.0 找到nvm的配置文件

通常是在安装nvm的目录下面,你也可以使用命令行nvm root的输入结果找到nvm安装路径

nvm root

image.png

image.png

5.1 配置node_mirrornode_mirror

  • 请在修改前备份一份

image.png

5.1.1 通过修改setting.txt配置文件

5.1.2 通过命令行配置

  • nvm node_mirror [url] : 代表你将从此下载源中下载各版本的nodejs .

    默认url为 nodejs.org/dist/. 移除 [url]意味着使用默认url.

  • nvm npm_mirror [url]:代表你将从此下载源中下载各版本的npm.

    默认url为 github.com/npm/cli/arc…. 移除 [url] 意味着使用默认url.

我们可以使用管理员身份运行cmd,分别通过以下命令行进行node_mirror和npm_mirror的设置国内下载源

node_mirror

nvm node_mirror https://npmmirror.com/mirrors/node/

npm_mirror

nvm npm_mirror https://npmmirror.com/mirrors/npm/

检查配置文件我们就可以发现配置已修改 image.png

题外话

2022 年 05 月 31之前我们一直以来,一般会配置如下:

node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/

image.png

但是中国镜像站早就在21年的时候就周知要老 npm.taobao.org 和 registry.npm.taobao.org 域名将于 2022 年 05 月 31 日零时起停止服务,原文详见知乎【望周知】淘宝 NPM 镜像站喊你切换新域名啦

所以我们需要修改为如下:

node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/

我添加完之后的setting配置如下:

root: D:\nvm
path: D:\nvm\nodejs
node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/

image.png

5.2 优点

不管使用nvm安装哪个版本,只要在setting里配置了,就会默认使用setting中的源进行下载node和npm,方便管理。

5.3 缺点

当安装低版本的node时,同步安装的npm版本有可能在指定的setting配置的源中找不到。例如我当前配置的npm下载镜像是淘宝镜像。当我下载8.0.0指定的低版本node时,npm下载失败。此时,我必须去掉setting里配置的镜像,让它去默认的源下载。

image.png image.png 因为我们nvm使用的npm下载镜像地址里就没有npm5.0.0版本的 image.png

此时,我必须只有去掉setting 里的npm镜像(使用默认的镜像),此时才能成功。所以注意先确定node对应的npm版本在代理镜像中有没有再决定是否需要去掉npm_mirrornode_mirror同理。

image.png

6. NVM的使用

注意注意注意哈,当第一次使用时,切换命令成功了但是查看node版本却发现不存在,请注意使用nvm on来开启nvm管理,啊啊啊啊啊啊记住呀,否则第一次它是没有生成nodejs快捷方式的,这个不关环境配置的事情,第一次就是需要使用nvm on来启用,嗷莫~~~~~~~

请在使用命令前备份原始文件,别问我为啥,问就是,有些命令会改变一些参数,例如,使用nvm npm_mirror [url],会多了很多不必要的配置项,还少了配置项,自行体验。啧啧啧。

常见使用命令行详见文章:NVM的使用,以下只演示nvm安装node

6.1 nvm 安装node

(我换电脑了,此处更新日期2023-04-21) 搜索栏输入cmd,启动命令行

image.png

以下命令行按照自己想要的选安装最新的或安装指定版本的

6.1.1 安装最新版node

nvm install lts 安装最新版node

nvm install lts

image.png

6.1.2 安装特定node版本

  • nvm install node版本号安装特定node版本号,例如下图演示安装node的19.8.1
nvm install 19.8.1

image.png

6.2 nvm 生成nodejs快捷方式

6.2.1. 首先一定要使用管理员身份运行cmd(否则有很大可能切换不成功,虽然命令行结果提示成功,但是实际上不生效)

    ![image.png](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/cc6663a4c9a94ae181ee72e3985648a3~tplv-k3u1fbpfcp-watermark.image#?w=436\&h=392\&s=80007\&e=png\&b=fcfcfc)

6.2.2 启用nvm

首次使用nvm时,需要启用nvm,使用nvm on命令来生成nodejs快捷方式

nvm on

image.png

image.png

6.2.3 为何需要生成nodejs路径

为何需要生成nodejs路径?因为我们在系统环境变量中指定了node的路径,如果我们删掉上图的nodejs快捷方式,系统无法查询到node,那么我们是无法使用node或者npm的。

image.png

例如,我刚安装完nvm,在nvm的安装路径下没有找到nodejs文件夹

image.png

并且我没有使用nvm use进行node的版本切换,那么在我使用node命令行时就会出现错误

image.png 我们必须使用nvm on或者nvm use 通过nvm已安装的node版本号来生成nodejs文件夹提供给环境变量调用

image.png

当然,nvm也有可能在其他nvm命令行后生成nodejs快捷方式。如果你们发现在使用nvm切换node版本后出现类似如下字眼“'node' 不是内部或外部命令,也不是可运行的程序 或批处理文件。”,那么请你检查一下NVM_SYMLINK环境变量值是否真的存在。

6.2.4. nodejs文件夹快捷方式如下图

image.png 表示的是NVM_SYMLINK环境变量值,它是nvm切换某一node版本的对应快捷方式,

例如,我使用命令行nvm use 20.14.0成功切换至node20.14.0,那么此时nvm生成的nodejs快捷方式文件夹就相当于是nodejs版本为 “v20.14.0”的文件夹,

image.png

nvm 切换node版本

nvm use node版本,例如使用nvm切换已安装的node版本20.0.0,下图演示常规步骤

    1. nvm ls列出nvm已安装的node版本
    1. nvm use 已安装的node版本例如下图所示的 nvm use 20.0.0
    1. node -v检查当前使用的node版本 image.png

有用的废话:公司电脑配置了一些权限,我们有时候无法使用nvm use达到切换node版本的目的,此时,我们需要

  1. 在对应node版本文件夹里创建对应标识该版本的 image.png
  1. 删除原来的nodejs快捷方式 image.png
  1. 把想要使用的node版本文件夹重命名为nodejs

image.png

那么此时我们就已经切换到node19.8.1版本

image.png

  1. 把新创建出来的node版本快捷方式命名为“nodejs”替换原来的nodejs快捷方式

npm 配置

使用 nvm 时,默认的 prefix 是当前激活的 Node.js 版本的安装路径。 带来一个问题是:切换版本之后,之前安装全局命令模块需要重新安装,非常不方便。 解决方案是配置统一的全局模块安装路径。 详见下一篇文章:npm配置