nvm 安装、卸载与使用(详细步骤)

一、nodenvmnpmnpxnrm 区别

  • node:是一个基于 Chrome V8 引擎的 JS 运行环境。
  • npm:是 node.js 默认的包管理系统(用 JavaScript 编写的),在安装的 node 的时候,npm 也会跟着一起安装,管理 node 中的第三方插件。
  • npxnpmv5.2.0 开始新增了 npx 命令,>= 该版本会自动安装 npx,附带:npx 有什么作用跟意义?为什么要有 npx?什么场景使用?
  • nrm:是一个 npm 源管理工具,使用它可以快速切换 npm 源,默认是官方源,当 npm 下载包过慢时,可能需要切换到第三方源(例如:淘宝、科大…),还有公司私有源地址等等。
  • nvmnode 版本管理器,也就是说:一个 nvm 可以管理多个 node 版本(包含 npmnpx),可以方便快捷的 安装切换 不同版本的 node

二、nodenvmnpmnpxnrm 关系

  • nvm 管理 node (包含 npmnpx) 的版本,npm 可以管理 node 的第三方插件,nrm 可以管理 npm 的源地址(当然也可以直接使用 npm 自带命令管理,看个人习惯)。
  • 切换不同的 node 版本,npmnpx 的版本也会跟着变化。
1
2
3
4
5
6
7
8
arduino复制代码$ nvm use v8.16.0
Now using node v8.16.0 (npm v6.4.1)

$ nvm use v14.15.4
Now using node v14.15.4 (npm v6.14.10)

$ nvm use v18.6.0
Now using node v18.6.0 (npm v8.13.2)

三、安装 nvm

如果安装没问题,按照 安装方式三 中除安装部分外,配置好当前解释器需要的 nvm 配置。

1
ruby复制代码$ brew install nvm
  • 安装方式二:命令安装

但是这边网不是很好,一直停在安装页面没动静,所以后面选择了 手动安装

如果安装没问题,按照 安装方式三 中除安装部分外,配置好当前解释器需要的 nvm 配置。

下面的安装路径,在 nvm 官方文档 中有。

1
2
3
shell复制代码$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

$ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

附带:(下面后面找到的替代方案,安装源都换成国内的,尤其是在服务器上进行安装时,网络不行的情况下,可以使用下面这个)

1
2
3
4
5
shell复制代码# 安装
$ bash -c "$(curl -fsSL https://gitee.com/RubyKids/nvm-cn/raw/master/install.sh)"

# 卸载
$ bash -c "$(curl -fsSL https://gitee.com/RubyKids/nvm-cn/raw/master/uninstall.sh)"
  • (推荐)安装方式三:手动安装

1、下载官方 Git nvm

image.png

2、解压文件找到 install.sh

image.png

3、执行命令,将 install.sh 路径放到下面命令中回车运行。

1
shell复制代码$ sh xxx/instal.sh

4、然后等待,安装完成之后。(没有提示则看下一步) 如果提示没有找到对应解释器的配置文件,则需要手动创建一个当前解释器的配置文件,如果不清楚可以看下这篇文章 Shell 切换解释器,查看当前解释器

1
error复制代码=> Profile not found. Tried ~/.bashrc, ~/.bash_profile, ~/.zshrc, and ~/.profile.

2022-07-23-12-51-55.png

+ 知道属于什么解释器之后,没有则手动创建一个,这里以 `zsh` 解释器举例:

1
2
3
4
5
6
7
8
9
10
11
12
13
shell复制代码# 创建 zsh 配置文件
$ touch ~/.zshrc

# 编辑配置文件
$ vim ~/.zshrc

```5、如果解释器存在配置文件,则只需要添加到配置文件中即可


+ 将 `nvm` 的配置添加到 `~/.zshrc` 里面保存起来,以安装时提示添加的配置为准,下面就拷贝一下当前安装所提示的。
+ 下面配置二选一即可,但是有一点需要注意:在 `$ sh xxx/instal.sh` 进行安装之前如果本地存在当前解释器的配置文件,默认一般会自动将 `2` 配置直接进行追加到配置文件中,也就是不需要手动进行添加。
+ 在安装这之前没有配置文件的话,就需要先创建配置文件,在手动贴进去,也可以创建配置文件之后,在重新直接运行一遍 `$ sh xxx/instal.sh` 安装,反正也只是覆盖一遍,也会自动追加进去,可以打开配置自己看看。
+ 另外如果没有好的网络,推广更换一下 `nvm` 的镜像地址为淘宝,默认是官方 [nvm 切换为淘宝镜像](https://blog.csdn.net/zz00008888/article/details/132412685) 。
shell复制代码# 1、这是本地不存在配置文件的时候提示需要添加的配置 export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm # 2、这是本地存在配置文件的时候提示需要添加的配置(推荐) export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
1
+ 然后重新加载一遍配置文件,使其生效:
shell复制代码$ source ~/.zshrc
1
2


shell复制代码$ nvm -v

$ nvm use system

1
2
3
4
5
6
7
8

![image.png](https://gitee.com/songjianzaina/juejin_p3/raw/master/img/79ec57565b557f47c80344cbc8d30b3cdb6ffbf02b43ff16e5048adc33a9041a)


#### 四、使用 `nvm`


* 安装最新稳定版 `node`,当前是 `node v12.9.1 (npm v7.9.0)`

ruby复制代码$ nvm install stable

1
* 安装指定版本,可模糊安装,如:安装 `v4.4.0`,既可 `$ nvm install v4.4.0`,又可 `$ nvm install 4.4`

ruby复制代码$ nvm install

1
* 删除已安装的指定版本,语法与 `install` 用法一致

ruby复制代码$ nvm uninstall

1
* 切换使用指定的版本 `node`

csharp复制代码// 临时版本 - 只在当前窗口生效指定版本
$ nvm use

// 永久版本 - 所有窗口生效指定版本
$ nvm alias default

1
2
3
4
5
6

`注意`:在任意一个命令行窗口进行切换之后,其他的窗口或其他命令行工具窗口 `需要关掉工具,重启才能生效`。(例如 `VSCode` 内或外部命令切换之后,需要重启 `VSCode`,才能正常生效,否则或处于 `临时生效状态`,也就是在 `VSCode` 中重新打开一个命令行查看版本还会是旧版本,所以必须要重启。)


这里的 `重启` 不是简单的关掉窗口重启,没有退出后台进程,而是完全退出杀死工具进程,重新启动。
* 列出所有安装的版本

shell复制代码$ nvm ls

1
* 列出所有远程服务器的版本(官方 `node version list`)

ruby复制代码$ nvm ls-remote

1
* 显示当前的版本

ruby复制代码$ nvm current

1
* 给不同的版本号添加别名

ruby复制代码$ nvm alias

1
* 删除已定义的别名

shell复制代码$ nvm unalias

1
* 在当前版本 `node` 环境下,重新全局安装指定版本号的 `npm` 包

ruby复制代码$ nvm reinstall-packages

1
* 查看更多命令可在终端输入

ruby复制代码$ nvm



**本文转载自:** [掘金](https://juejin.cn/post/7000652162950758431)

*[开发者博客 – 和开发相关的 这里全都有](https://dev.newban.cn/)*
0%