nvm: node的版本管理工具

1,085 阅读3分钟

nvm 全称 Node Version Manager ,也就是node版本管理工具;它是一个命令行应用,可以协助您快速地 更新、安装、使用、卸载 本机的全局 node.js 版本。

有时候,我们可能同时在进行多个项目开发,而多个项目所使用的node版本又是不一样的,或者是要用最新的node版本进行试验和学习。这种情况下,对于维护多个版本的node将会是一件非常麻烦的事情,而nvm就是为解决这个问题而产生的,他可以在同一台电脑上进行多个node版本之间的切换,而这正是nvm的价值所在

使用场景:当你同时进行两个或多个node项目开发,并且这些项目的node版本不一样时,nvm可以很好的帮你管理pc上的node版本切换。

2.nvm和npm

  • npm:是 nodejs 包的管理工具,在安装 node 的时候,npm 也会自动一起安装,因为每个 node 版本都有对应的 npm 版本
  • nvm:是 node 版本管理工具,可以同时在电脑上安装多个不同版本 node,可以非常方便的操作 node 不同版本的切换、安装、查看等等

3.nvm安装

安装前准备

卸载已安装到全局的 node

卸载步骤:

  1. 通过控制面板卸载:
  • 打开“控制面板”。
  • 点击“程序”> “程序和功能”。
  • 在右上角的搜索框中输入“node”,找到已安装的 Node.js 版本。
  • 右键点击该条目,并选择“卸载”。
  1. 手动检查并删除残留文件:
  • 检查 Node.js 的安装目录,通常为 C:\Program Files\nodejs 或者你自定义的安装路径,确认并删除任何遗留的 Node.js 文件夹。
  • 查看 C:\Users<你的用户名> 目录下是否存在 .npmrc, .yarnrc 等相关配置文件,若有,请一并删除。
  1. 清理环境变量:
  • 最后,检查系统的环境变量,移除与 Node.js 相关的所有路径设置(包括 PATH 中的 nodejs 路径),确保没有残留配置影响后续操作。

完成以上步骤后,你可以继续进行 NVM 的安装流程。这样可以避免由于先前 Node.js 安装导致的潜在冲突或问题。

一. Windows 环境

  • 1.1 nvm 的官方版本只支持 Linux 和 Mac。 Windows 用户,可以用 nvm-windows。 文档:nvm-windows 点击最新版本的 nvm-setup.zip 下载到本地并安装 找到 nvm-setup.zip 点击下载, 选择nvm安装路径,注意路径不要有空格和中文。

  • 1.2 找到 settings.txt 文件 -> 修改下载源 这两行为自己的下载路径

    ```js
    node_mirror: https://npmmirror.com/mirrors/node/
    npm_mirror: https://npmmirror.com/mirrors/npm/
    ```
    
  • 1.3 然后就可以 nvm install xxx 安装管理node版本了

遇到问题

1. windows: nvm use xxx 报错: nvm use 14.20.0 exit status 5: �ܾ����
 
  • 权限问题, 以管理员身份运行 powershell, nvm use xxx 即可

二. mac 安装

一种方式通过命令拉取 nvm 相关源码命令

Mac nvm 文档 安装命令:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash

或者

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

一种是通过 brew install nvm

(需要先安装 homebrew)

brew install nvm

nvm常用命令如下:

nvm ls :列出所有已安装的 node 版本

nvm version 查看nvm版本

nvm install 14.17.0    安装指定版本

nvm install latest    安装最新版本

nvm uninstall 14.17.0  卸载node8.12.0版本

nvm list              查看所有安装了的 node

nvm use 12.19.0      将node版本切换到12.19.0版本

nvm current :当前 node 版本

nvm alias [别名] [node版本号] :给不同的版本号添加别名

nvm unalias [别名] :删除已定义的别名

nvm alias default[node版本号]:设置默认版本