目录
- 一、nvm 安装
- 1. Windows 系统
- 2.macOS / Linux 系统
- 二、版本适配策略
- 1. 查看项目要求
- 2. 版本选择原则
- 3. 使用 `.nvmrc` 文件进行项目级版本控制
- 三、常见问题与解决方案
- 1. 命令未找到:`nvm: command not found`
- 2. 安装 Node.js 速度慢或失败
- 3. 切换版本后,全局安装的包不见了
- 4. Windows 下 `nvm use` 需要管理员权限
- 5. 在特定目录下 `nvm use` 不生效
- 6. 如何卸载 nvm?
好的,我们来深入探讨 nvm 的安装、版本适配策略以及常见问题。
一、nvm 安装
1. Windows 系统
Windows 用户需要使用 nvm-windows,这是一个独立的项目。
- 卸载现有 Node.js(重要!)
在安装 nvm-windows 之前,请务必通过"添加或删除程序"卸载任何已安装的 Node.js 版本,否则会产生冲突。
- 控制面板 -> 卸载程序 -> 卸载nodejs
- 确保彻底删除node,看下node安装目录中有没有node文件夹,删除以下文件夹(如果存在的话)
- C:\Program Files (x86)\Nodejs
- C:\Program Files\Nodejs
- C:\Users{User}\AppData\Roaming\npm
- C:\Users{User}\AppData\Roaming\npm-cache
- 删除C:\Users\用户名 下的 .npmrc文件以及 .yarnrc 文件
- 环境变量中npm、node的所有相关统统删掉
-
下载安装包:
访问 nvm-windows 发布页面,下载最新的nvm-setup.exe
安装文件。 -
运行安装程序:
- 以管理员身份运行
nvm-setup.exe
。 - 安装程序会询问你 nvm 和 Node.js 的安装路径。建议使用默认路径,例如:
- nvm 根目录:
C:\Users\<你的用户名>\AppData\Roaming\nvm
- Node.js 符号链接:
C:\Program Files\nodejs
- nvm 根目录:
- 这个符号链接是关键,nvm 会通过切换这个链接指向的文件夹来实现版本切换。
- 以管理员身份运行
-
验证安装:
打开一个新的命令提示符(CMD) 或 PowerShell,输入:nvm version
如果显示版本号(如
1.1.12
),则安装成功。
2.macOS / Linux 系统
-
卸载现有 Node.js(可选但推荐):
如果你之前通过pkg
安装器或 Homebrew 安装过 Node.js,最好先卸载它们。 -
使用安装脚本:
打开终端,执行以下任一命令:# 使用 curl curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash # 或使用 wget wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
注意:版本号
v0.39.7
可能会更新,请查看 GitHub 页面获取最新版本。 -
配置 Shell 环境:
安装脚本会自动在你的 Shell 配置文件(如~/.bashrc
,~/.zshrc
,~/.profile
)末尾添加 nvm 的启动脚本。- 重新打开终端,或者运行以下命令使配置生效:
# 对于 Bash source ~/.bashrc # 对于 Zsh(macOS Catalina 及之后版本的默认 shell) source ~/.zshrc
- 重新打开终端,或者运行以下命令使配置生效:
-
验证安装:
nvm --version
如果显示版本号,则安装成功。
二、版本适配策略
如何为你的项目选择合适的 Node.js 版本?
1. 查看项目要求
- 检查
package.json
:很多项目会在package.json
中通过engines
字段指定 Node.js 版本范围。"engines": { "node": ">=18.0.0" }
- 寻找项目文档:查看项目的 README.md 或官方文档,通常会写明所需的 Node.js 版本。
2. 版本选择原则
-
优先选择 LTS(长期支持)版本:
- LTS 版本更稳定,有长期的安全更新和维护,是生产环境的首选。
- 使用
nvm ls-remote --lts
查看所有可用的 LTS 版本。 - 安装最新的 LTS 版本:
nvm install --lts
-
新项目:直接使用最新的 Active LTS 版本(如
20.x
)。你可以通过 Node.js 官网 查看当前的 LTS 版本。 -
旧项目:根据项目创建时间和所用框架的版本去推断。例如:
- 非常老的项目(2018年前):可能兼容 Node.js
8.x
,10.x
- Vue CLI / React Scripts 项目:参考其文档的版本要求。
- 非常老的项目(2018年前):可能兼容 Node.js
3. 使用 .nvmrc
文件进行项目级版本控制
这是一个最佳实践,可以确保所有开发者使用相同的 Node.js 版本。
-
在项目根目录下创建
.nvmrc
文件。 -
在文件中写入你想要的 Node.js 版本号:
18.19.1
或者更宽松的规则:
lts/*
18
-
进入项目目录时,只需运行:
nvm use
nvm 会自动读取
.nvmrc
文件并切换到指定的版本。如果该版本未安装,它会提示你安装。
三、常见问题与解决方案
1. 命令未找到:nvm: command not found
- 原因:Shell 配置没有正确加载。
- 解决:
- 确保你重新打开了终端或执行了
source ~/.zshrc
(或~/.bashrc
)。 - 检查你的配置文件是否包含了 nvm 的初始化脚本。如果没有,手动添加:
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
- 确保你重新打开了终端或执行了
2. 安装 Node.js 速度慢或失败
- 原因:网络问题,特别是从国外官方源下载。
- 解决:配置镜像源。
- 对于 nvm (macOS/Linux):
然后# 添加到你的 Shell 配置文件 (~/.zshrc 或 ~/.bashrc) export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node
source
你的配置文件。 - 对于 nvm-windows:
在 nvm 的安装目录(如C:\Users\<用户名>\AppData\Roaming\nvm
)下找到settings.txt
文件,添加:node_mirror: https://npmmirror.com/mirrors/node/ npm_mirror: https://npmmirror.com/mirrors/npm/
- 对于 nvm (macOS/Linux):
3. 切换版本后,全局安装的包不见了
- 原因:这是正常现象。每个 Node.js 版本都有自己独立的全局空间。当你切换版本时,全局环境也随之切换。
- 解决:在新的 Node.js 版本下重新安装你需要的全局包(如
npm install -g pnpm
)。
4. Windows 下 nvm use
需要管理员权限
- 原因:nvm-windows 通过创建符号链接来工作,这在某些 Windows 版本上需要管理员权限。
- 解决:始终以管理员身份运行你的命令行工具(CMD 或 PowerShell)。
5. 在特定目录下 nvm use
不生效
- 原因:你可能没有在该目录下创建
.nvmrc
文件,或者文件内容格式不正确。 - 解决:确保
.nvmrc
文件存在且内容是一个有效的版本号(如18.19.1
),然后再次运行nvm use
。
6. 如何卸载 nvm?
- macOS/Linux:直接删除 nvm 目录
rm -rf ~/.nvm
,并移除 Shell 配置文件中相关的几行代码。 - Windows:通过"添加或删除程序"卸载
nvm-windows
,并手动删除其安装目录。
通过掌握这些安装、适配和排错技巧,你就能游刃有余地使用 nvm 来管理复杂的 Node.js 开发环境了。