要在一台机器上安装并管理多个版本的 Node.js 环境,最常用的工具是 Node Version Manager (nvm)。nvm
允许你轻松地安装和切换不同版本的 Node.js。以下是如何使用 nvm
安装多个版本的 Node.js 环境的详细步骤。
一、安装 NVM(Node Version Manager)
1. Windows 上安装 NVM
Windows 版本的 nvm
是一个独立的项目,叫做 nvm-windows
。可以通过以下步骤安装:
-
下载 NVM for Windows:
- 前往 nvm-windows GitHub releases 页面,下载最新的
nvm-setup.zip
安装包。
- 前往 nvm-windows GitHub releases 页面,下载最新的
-
安装 NVM:
- 解压并运行
nvm-setup.exe
。 - 选择安装路径(默认安装在
C:\Program Files\nodejs\
),完成安装。
- 解压并运行
-
配置环境变量:
- 安装完成后,
nvm
会自动配置好环境变量。 - 你可以通过终端输入
nvm
检查安装是否成功。
- 安装完成后,
二、使用 NVM 安装多个版本的 Node.js
-
列出所有可用的 Node.js 版本:
nvm list available
这会列出所有可用的 Node.js 版本,你可以选择你想安装的版本。
输出效果E:\x\y>nvm list available | CURRENT | LTS | OLD STABLE | OLD UNSTABLE | |--------------|--------------|--------------|--------------| | 23.0.0 | 20.18.0 | 0.12.18 | 0.11.16 | | 22.10.0 | 20.17.0 | 0.12.17 | 0.11.15 | | 22.9.0 | 20.16.0 | 0.12.16 | 0.11.14 | | 22.8.0 | 20.15.1 | 0.12.15 | 0.11.13 | | 22.7.0 | 20.15.0 | 0.12.14 | 0.11.12 | | 22.6.0 | 20.14.0 | 0.12.13 | 0.11.11 | | 22.5.1 | 20.13.1 | 0.12.12 | 0.11.10 | | 22.5.0 | 20.13.0 | 0.12.11 | 0.11.9 | | 22.4.1 | 20.12.2 | 0.12.10 | 0.11.8 | | 22.4.0 | 20.12.1 | 0.12.9 | 0.11.7 | | 22.3.0 | 20.12.0 | 0.12.8 | 0.11.6 | | 22.2.0 | 20.11.1 | 0.12.7 | 0.11.5 | | 22.1.0 | 20.11.0 | 0.12.6 | 0.11.4 | | 22.0.0 | 20.10.0 | 0.12.5 | 0.11.3 | | 21.7.3 | 20.9.0 | 0.12.4 | 0.11.2 | | 21.7.2 | 18.20.4 | 0.12.3 | 0.11.1 | | 21.7.1 | 18.20.3 | 0.12.2 | 0.11.0 | | 21.7.0 | 18.20.2 | 0.12.1 | 0.9.12 | | 21.6.2 | 18.20.1 | 0.12.0 | 0.9.11 | | 21.6.1 | 18.20.0 | 0.10.48 | 0.9.10 | This is a partial list. For a complete list, visit https://nodejs.org/en/download/releases
-
安装指定的 Node.js 版本:
运行以下命令安装你需要的某个 Node.js 版本(例如 v14.17.0):nvm install 14.17.0
-
查看已安装的 Node.js 版本:
运行以下命令列出你本地已经安装的所有 Node.js 版本:nvm ls nvm list
-
切换 Node.js 版本:
当你安装了多个版本后,可以通过以下命令切换到不同的 Node.js 版本:nvm use 14.17.0
-
设置默认 Node.js 版本:
如果你希望在每次打开终端时默认使用某个版本,可以运行以下命令设置默认版本:nvm alias default 14.17.0
-
卸载不需要的 Node.js 版本:
如果你不再需要某个版本的 Node.js,可以使用以下命令卸载:nvm uninstall 14.17.0
通过 nvm
,你可以灵活地管理多个 Node.js 版本,方便开发不同的项目。在开发多个需要不同 Node.js 版本的项目时,nvm
是非常有用的工具。
三、关于npm的安装
- 什么是 NPM?
NPM(Node Package Manager)是 Node.js 的包管理器,也是全球最大的 JavaScript 包管理平台。NPM 使得开发者可以轻松安装、分享和管理项目的依赖项,并通过共享库和工具来快速开发和部署项目。 - NPM 与 Node.js 的关系
NPM 是 Node.js 的默认包管理工具。当你安装 Node.js 时,NPM 会自动一同安装。两者之间的关系紧密,因为 NPM 管理的依赖库大多是为 Node.js 应用开发的。
- Node.js:是一个运行 JavaScript 的服务器端平台,用于构建高性能、可扩展的网络应用程序。
- NPM:作为 Node.js 的配套工具,提供了一个强大的生态系统,使开发者可以使用和分享各种功能包来加快开发进程。
- Node.js 和 NPM 如何协作
-
依赖管理:当你在 Node.js 项目中需要第三方库时,NPM 可以帮助你轻松获取并管理这些依赖项。例如,想要引入
express
框架来构建服务器,只需运行:npm install express
然后在你的 Node.js 代码中:
const express = require('express');
-
项目管理:
package.json
文件是 NPM 和 Node.js 项目管理的核心。它定义了项目的名称、版本、依赖项等。NPM 使用该文件来管理和安装所需的依赖库,并确保项目在不同开发环境中的一致性。 -
脚本管理:NPM 提供了一个简单的方式来管理和运行脚本任务。你可以在
package.json
中定义各种脚本任务,并通过npm run
命令运行它们。例如:"scripts": { "start": "node app.js", "test": "mocha" }
然后,你可以使用
npm start
来启动应用,或者使用npm test
运行测试。
-
使用nvm安装不同版本node时,会自动安装对应的npm
C:\x\y>nvm install 14.15.4 Downloading node.js version 14.15.4 (64-bit)... Complete Downloading npm version 6.14.10... Complete Installing npm v6.14.10... Installation complete. If you want to use this version, type nvm use 14.15.4
前面我安装的14.15.4就自动装上了对应的npm(版本是6.14.0)
使用nvm切换版本后,就可以正常使用对应的npm了,如下图:
四、使用nvm安装旧版本node时npm安装不上如何处理
-
使用nvm安装旧版本node时遇到问题,无法安装对应的npm
C:\x\y>nvm install 6.9.0 Downloading node.js version 6.9.0 (64-bit)... Complete Creating C:\x\y\AppData\Roaming\nvm\temp Downloading npm version 3.10.8... Download failed. Rolling Back. C:\x\y\AppData\Roaming\nvm\temp\npm-v3.10.8.zip Rollback failed. remove C:\x\y\AppData\Roaming\nvm\temp\npm-v3.10.8.zip: The process cannot access the file because it is being used by another process. Could not download npm for node v6.9.0. Please visit https://github.com/npm/cli/releases/tag/v3.10.8 to download npm. It should be extracted to C:\x\y\AppData\Roaming\nvm\v6.9.0
此时,可以切换node版本,但npm是不可以使用的,如下:
C:\x\y>nvm use 6.9.0 Now using node v6.9.0 (64-bit) C:\x\y>node -v v6.9.0 C:\x\y>npm -v 'npm' is not recognized as an internal or external command, operable program or batch file.
-
手动安装node版本对应的npm
- 按照上面的提示去github上下载对应的包,这里下载下来是压缩包,如下图:
npm地址:https://github.com/npm/cli/
- 解压后,放到nvm对应的node版本下的node_mdules下,还要把包名改成npm,如下图:
- 还要把npm下面的bin目录下的npm和npm.cmd文件复制到nvm的node版本目录下,如下图:
到这里,npm就安装成功了,旧版本的node环境可以正常使用了,如下图:
- 再尝试一下装新版本node
这里,我装了20.18.0,可以安装成功,但使用时会弹窗报错,可能是我的系统太老了,不支持使用。如下图:
此时,使用npm ls来查看的话,发现也没有真切到20.18.0版本,如下图:
我这里最高能安装上的LTS版本,是18.20.4,如下图:
小结一下
- 旧版本的node,需要去github上下载,并手动安装对应npm
- 较新版本的node,使用淘宝的源,就可以自动安装对应的npm
- 非常新版本的node,在我电脑上,是能安装成功,但无法切换使用的
扩展一下
- 安装多版本node,还查到了一个方法
简单说一下,就是去nodejs官网下载安装文件(windows是用的msi文件),然后双击安装到指定目录,可以把目录名设定成版本号,安装完一个版本后,需要把该目录改一下名,再去安装下一个版本(因为作者说如果不给前一个安装的目录改名,那在安装下一个版本的node时会把前一个版本的node都干掉),这样操作后,就有两个版本的node了,通过增加环境变量,可以把两个版本的node都启用。
注意:安装时,作者建议是从低版本的node开始安装,就是装低版本的,再装高版本,依次装上去 - windows增加环境变量的方法
我这里应该追加的是;C:\x\y\node\6.9.0\;C:\x\y\node\6.9.4\
,注意需要用;分隔。
- 这个方法我简单试了一下,基本是可行的。
- 这个方法有一个好处,就是每装一个node,都会自带对应的npm,不需要你再去github上手动安装了。
原文地址是:https://www.cnblogs.com/alinelong/p/18025263
记录一个坑
nvm list/nvm install 版本号不响应,就卡在那里。。此时,nvm list是可以正常返回的。
查资料,都是查到说要设置淘宝镜像的,其实这个是对的,这个步骤我也早都作了,但不是我这个问题的原因。
后面,排查了半天,发现是我在重复安装nvm的过程中,给nvm指定了自定义的路径,然后,就出问题了。。卸载又重装,仍然使用默认路径安装,nvm就可以正常使用了。
ps:其实没搞懂为啥自定义路径不行,估计大概率和环境变量有关,或者和配置文件settings.txt有关,,无所谓了。
-
如何配置淘宝镜像
这个其实在刚装完nvm就要配置的,否则没法下载安装node包。 需要配置的文件是:
需要增加的内容是:node_mirror: https://npmmirror.com/mirrors/node/ npm_mirror: https://npmmirror.com/mirrors/npm/
-
资料里相关的下载链接
nodejs官方
https://nodejs.org/zh-cn/download/package-manager
https://nodejs.org/en/download/package-manager
淘宝镜像
https://registry.npmmirror.com/binary.html?path=node/