摘要这篇文章主要讲解 Linux 安装 NVM 并用它管理 多个版本的Node.js 的完整流程配置环境变量后通过nvm install下载多个 Node 版本用nvm use按项目需求切换解决不同前端项目对 Node 版本要求不同的问题。最后总结三者关系NVM 管理 NodeNode 自带 NPMNPM 管理项目依赖.目录安装NVM(Linux系统|手把手教学)实战—使用nvm下载node、切换node版本实战—使用nvm切换node版本从这个例子能体会到NVM的魅力总结思考NVM、NODE、NPM三者是什么关系安装NVM(Linux系统|手把手教学)1. 从 Gitee 镜像把 nvm 源码拉取到~/.nvm并自动切换到最新稳定版git clone https://gitee.com/mirrors/nvm.git ~/.nvm cd ~/.nvm git checkout git describe --abbrev0 --tags注意~/是本机的根目录的意思执行效果2. 确认用的是哪个 shellecho $SHELL输出/bin/bash→ 编辑~/.bashrc输出/bin/zsh→ 编辑~/.zshrc执行效果3. 把下面三行追加到.bashrc文件末尾cat ~/.bashrc EOF export NVM_DIR$HOME/.nvm [ -s $NVM_DIR/nvm.sh ] \. $NVM_DIR/nvm.sh [ -s $NVM_DIR/bash_completion ] \. $NVM_DIR/bash_completion EOF注意如果你通过第2步发现你的电脑使用的是zsh把上面的~/.bashrc换成~/.zshrc即可。4. 让配置生效(重要)source ~/.bashrc注意 # zsh 用户换成 source ~/.zshrc5. 验证nvm --version执行效果此时弹出了NVM的版本号说明安装成功了实战—使用nvm下载node、切换node版本1. 目前的问题当我们运行前端项目时报错信息如下。经过查询发现本质问题就一个目前使用的node的版本是16最起码要升级到20才行2. 解决问题使用nvm下载node 20并且切换到该版本①看下目前nvm中有哪些版本的node执行如下命令nvm ls执行结果- system (- v16.20.2)iojs - N/A (default)node - stable (- N/A) (default)unstable - N/A (default)翻译一下现在我的nvm里面没安装任何node而是使用系统的node 16这是我们之前手动安装的node而不是经过nvm安装的node所以nvm无法接管这个node 16②使用nvm下载node 20nvm install 20执行效果③使用nvm将当前的node从版本16切换到20nvm use 20④查看当前使用的node版本(应该是20了因为上一步已经使用nvm切换了node版本)node -v执行效果注意(关键)切换到其他目录/会话窗口后nvm可能就找不到了需要重新加载~/.bashrc文件如果你不执行 source ~/.bashrc (即重新加载一下配置文件)可能会报错提示找不到nvm3. 查看问题是否得到解决再次尝试启动前端项目实战—使用nvm切换node版本从这个例子能体会到NVM的魅力1. 目前的问题换了另一个前端项目尝试运行发现报错了2. 问题分析因为我们刚才执行第一个前端项目时把node的版本从16切到了20第一个前端项目是成功运行了但是第二个前端项目需要的node版本是16但是你刚才切到了20这就导致版本不对了。因此可以体会出nvm可以下载、管理多个版本的node根据不同的前端项目使用nvm切换到版本合适的node3. 解决问题①使用nvm下载node 16②查看nvm目前管理了哪些版本的node由图可见当前nvm管理了16、20这两个版本的node注意那个 system (- v16.20.2)是我们之前手动安装的node而不是通过nvm安装的所以nvm无权进行管理。③使用nvm将node版本切换到164. 查看问题是否得到解决再次运行一下前端项目看看能否成功执行效果总结NVM就像一个武器库里面存放了很多版本的node根据不同前端项目的需要切换到对应版本的node即可操作步骤①查看nvm版本如果发现报错了说明当前目录没加载nvm配置需执行以下命令②查看nvm管理了哪些版本的node可见此时nvm管理了版本为16、20的node。可见此时绿色箭头指向的是16说明当前使用的是版本16的node③使用nvm切换当前使用的node版本思考NVM、NODE、NPM三者是什么关系这三者的关系可以用一句话概括NVM 是管理 Node.js 版本的工具Node.js 是 JavaScript 的运行环境NPM 是随 Node.js 一起安装的包管理器。下面分开说明。Node.jsJavaScript 的运行环境Node.js 让 JavaScript 可以脱离浏览器在服务器或本地电脑上运行。它本身是一个程序你安装它之后就能用node命令执行.js文件。比如node app.js所以 Node.js 是“被管理”和“被使用”的核心对象。NPMNode.js 的包管理器NPMNode Package Manager是安装 Node.js 时默认附带的。它用来下载、安装、管理项目依赖。比如npm install express这条命令会从 npm 仓库下载 Express 框架到你的项目中。NPM 和 Node.js 的关系是NPM 随 Node.js 一起分发不同 Node.js 版本通常会自带不同版本的 NPM。你安装了 Node.js一般就不需要单独安装 NPM。NVMNode.js 版本管理器NVMNode Version Manager用来在同一台电脑上安装和切换多个 Node.js 版本。比如nvm install 18 nvm install 20 nvm use 18这样你可以在不同项目中使用不同版本的 Node.js。有些老项目依赖 Node 14新项目用 Node 20NVM 就是解决这类问题的。NVM 和 Node.js 的关系是NVM 管理 Node.js 的安装和切换NPM 则随着你当前选中的 Node.js 版本一起被切换。三者的层级关系可以这样理解NVM └── 管理多个 Node.js 版本 └── 每个 Node.js 版本自带一个 NPM └── NPM 用来安装项目依赖所以NVM在最上层负责“用哪个 Node”。Node.js在中间是实际运行 JavaScript 的环境。NPM依附于 Node.js负责“装包、管依赖”。一个常见误区有人会问“我装了 NVM还需要装 Node 吗”需要。NVM 本身不提供 Node.js 运行环境它只是帮你安装和切换 Node.js。你仍然要通过 NVM 去安装具体的 Node 版本比如nvm install 20。同样NPM 通常不需要单独安装。只要你通过 NVM 安装了某个 Node 版本这个版本对应的 NPM 也会一起可用。总结工具作用关系NVM管理 Node.js 版本管理 NodeNode.js运行 JavaScript被 NVM 管理自带 NPMNPM管理项目依赖包(类似于后端的maven)随 Node.js 安装版本随 Node 切换一句话记忆NVM 管 NodeNode 带 NPMNPM 管项目依赖。以上就是本篇文章的全部内容喜欢的话可以留个免费的关注呦~~~