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

121,595 阅读3分钟

一、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 的版本也会跟着变化。

    $ 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 官方文档nvm 卸载详细流程Mac 推荐 HomeBrew 安装,方便更新管理,其他随意能装上就行,附带:Mac Homebrew 安装与卸载

  • 安装方式一:Mac HomeBrew 安装

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

    $ brew install nvm
    
  • 安装方式二:命令安装

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

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

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

    $ 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
    

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

    # 安装
    $ 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 路径放到下面命令中回车运行。

    $ sh xxx/instal.sh
    

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

    => Profile not found. Tried ~/.bashrc, ~/.bash_profile, ~/.zshrc, and ~/.profile.
    

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

    • 知道属于什么解释器之后,没有则手动创建一个,这里以 zsh 解释器举例:
      # 创建 zsh 配置文件
      $ touch ~/.zshrc
      
      # 编辑配置文件
      $ vim ~/.zshrc
      

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

    • nvm 的配置添加到 ~/.zshrc 里面保存起来,以安装时提示添加的配置为准,下面就拷贝一下当前安装所提示的。

    • 下面配置二选一即可,但是有一点需要注意:在 $ sh xxx/instal.sh 进行安装之前如果本地存在当前解释器的配置文件,默认一般会自动将 2 配置直接进行追加到配置文件中,也就是不需要手动进行添加。

    • 在安装这之前没有配置文件的话,就需要先创建配置文件,在手动贴进去,也可以创建配置文件之后,在重新直接运行一遍 $ sh xxx/instal.sh 安装,反正也只是覆盖一遍,也会自动追加进去,可以打开配置自己看看。

    • 另外如果没有好的网络,推广更换一下 nvm 的镜像地址为淘宝,默认是官方 nvm 切换为淘宝镜像

      # 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
      
    • 然后重新加载一遍配置文件,使其生效:

      $ source ~/.zshrc
      

    6、安装运行下面命令,可以测试是否安装成功

    $ nvm -v$ nvm use system
    

    image.png

四、使用 nvm

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

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

    $ nvm install <version>
    
  • 删除已安装的指定版本,语法与 install 用法一致

    $ nvm uninstall <version>
    
  • 切换使用指定的版本 node

    // 临时版本 - 只在当前窗口生效指定版本
    $ nvm use <version>
    
    // 永久版本 - 所有窗口生效指定版本
    $ nvm alias default <version>
    

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

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

  • 列出所有安装的版本

    $ nvm ls
    
  • 列出所有远程服务器的版本(官方 node version list

    $ nvm ls-remote
    
  • 显示当前的版本

    $ nvm current
    
  • 给不同的版本号添加别名

    $ nvm alias <name> <version>
    
  • 删除已定义的别名

    $ nvm unalias <name>
    
  • 在当前版本 node 环境下,重新全局安装指定版本号的 npm

    $ nvm reinstall-packages <version>
    
  • 查看更多命令可在终端输入

    $ nvm