前言
Node Version Manager (NVM) 是一种广泛使用的工具,允许开发人员在单台计算机上管理 Node.js 的多个版本。它的重要性怎么强调都不为过,因为 Nodejs 应用程序有时可能是依赖特定版本运行,然而不同的项目可能需要不同的 Nodejs 版本。NVM 提供的灵活性确保了不同项目同时运行在同一台机的开发过程的顺利进行,允许开发人员在 Node 版本之间无缝切换。在 windows 上,有多种安装 NVM 的方法,但最流行、最有效的方法之一是使用 Chocolatey,这是微软出品的包管理器。
本指南将引导您完成使用讲述在 windows 上安装 NVM 的详细步骤,让您轻松设置灵活的 Node.js 开发环境。
先决条件
- 需要拥有管理员权限
- 如果尚未安装 Chocolatey,可以参考我的博客chocolatey安装和使用.
删除现有Nodejs版本
如果您的系统已经安装了节点,请先将其卸载。我的系统已经通过 Homebrew 安装了节点。所以先卸载它。如果尚未安装,请跳过。
choco uninstall node
choco uninstall --force node
如果是通过pkg安装包安装的, 可以参考我的博客安装并配置nodejs尾部"在Windows上卸载nodejs"章节所述的方法删除Nodejs.
在Windows上安装NVM
以管理员身份打开PowerShell, 执行如下命令就可以松安装 NVM:
choco install nvm
安装后的nvm可以在C:\ProgramData\nvm找到对应的可执行文件.
接下来普通用户的身份打开Powershell,在用户主目录中创建一个 .nvm 目录
mkdir $HOME/.nvm
在.nvm目录下创建settings.txt, 内容如下
root: C:\ProgramData\nvm
path: C:\Program Files\nodejs
arch: 64
proxy: none
现在,配置所需的环境变量。在用户主目录中编辑以下配置文件
notepad $PROFILE
这个命令会打开PowerShell配置文件(如果还没有创建, 则会提示是否创建新文件). 随后在文件中添加如下内容:
# 配置NVM_HOME环境变量, nvm在管理Nodejs时依赖此变量指定的路径
$env:NVM_HOME = "$HOME\.nvm"
[Environment]::SetEnvironmentVariable("NVM_HOME", $env:NVM_HOME, [EnvironmentVariableTarget]::User)
# 将$HOME\.nvm添加到执行文件查找路径
$env:PATH += ";$HOME\.nvm"
[Environment]::SetEnvironmentVariable("PATH", $env:PATH, [EnvironmentVariableTarget]::User)
重新打开powershell, 检查设置是否生效
$ENV:NVM_HOME
如果报错execution policy的问题, 可以修改execution policy, 以管理员身份执行
Set-ExecutionPolicy RemoteSigned
使用 NVM
首先,查看可以安装哪些 Node 版本。要查看可用版本,请键入:
nvm ls-remote
现在,您可以安装上面输出中列出的任何版本。您还可以使用别名,例如node表示最新版本,lts表示最新 LTS 版本等。
nvm install node ## 安装最新版本
# 或者
nvm install 17 ## 安装 Node.js 17.X 版本
安装后,可以验证安装的内容:
nvm ls
如果您的系统上安装了多个版本,您可以随时将任何版本设置为默认版本。要将节点 18.X 设置为默认版本,只需使用:
nvm use 17
同样,您可以安装其他版本(例如 Node 12、15 和 18 版本)并在它们之间切换。
配置Nodejs
由于不知名的原因, 国内访问npm仓库会很慢, 所以需要设置镜像, 淘宝为我们提供了很好的镜像源.
设置淘宝镜像
npm config set registry https://registry.npm.taobao.org
// 配置后可通过下面方式来验证是否成功
npm config get registry
// 或
npm info express
troubleshooting
问题1: 当安装任何一个版本时都出现"The system cannot find the path specified."
$ nvm install 17
could not be found or does not exist. Exiting.
Downloading node.js version 17.9.1 (64-bit)...
Error while creating \v17.9.1\node.zip - open \v17.9.1\node.zip: The system cannot find the path specified.
Could not download node.js v17.9.1 64-bit executable.
解放办法
这是由于nvm读取不到配置项目root, 可以使用nvm root
命令显示地指定
nvm root "$HOME\.nvm"