nvm使用

297 阅读2分钟

一、NVM简介

NVM 是一个命令行工具,用于在同一台机器上管理多个Node.js版本。解决以下问题:

• 多版本隔离:不同项目依赖不同Node.js版本。

• 版本切换:无需卸载重装,一键切换环境。

• 权限简化:避免全局安装包时的权限冲突。


二、安装指南

  1. Windows系统

• 步骤:

  1. 卸载现有Node.js(避免冲突)。

  2. 下载安装包:nvm-windows(github.com/coreybutler…

  3. 运行nvm-setup.exe,选择路径(路径不含中文/空格)。

  4. 验证安装:命令行输入 nvm -v 显示版本号即成功。

• 环境变量:安装后自动生成 NVM_HOME(nvm路径)和 NVM_SYMLINK(node快捷方式路径)。

  1. macOS/Linux系统

• 命令安装:

curl -o- raw.githubusercontent.com/nvm-sh/nvm/… | bash

wget -qO- raw.githubusercontent.com/nvm-sh/nvm/… | bash

• 配置生效:

source ~/.bashrc # Bash用户 source ~/.zshrc # Zsh用户

• 验证:command -v nvm 返回 nvm。


三、核心命令速查表

命令 功能 示例 nvm install 安装指定版本 nvm install 20.5.0 nvm use 切换当前终端版本 nvm use 18.17.1 nvm alias default 设置默认版本 nvm alias default 20.5.0 nvm ls 查看已安装版本 - nvm ls-remote 列出远程可用版本 - nvm uninstall 卸载指定版本 nvm uninstall 16.0.0 nvm current 显示当前使用版本 - nvm run

特殊版本标识:

• nvm install node:安装最新稳定版。

• nvm install --lts:安装最新LTS版本。


四、高级用法

  1. 项目级版本管理

在项目根目录创建 .nvmrc 文件,指定Node版本:

echo "20.5.0" > .nvmrc

进入目录时自动切换版本(需Shell插件支持):

nvm use # 手动触发

  1. 镜像加速(国内用户)

• 方法1(命令):

nvm node_mirror npmmirror.com/mirrors/nod… nvm npm_mirror npmmirror.com/mirrors/npm…

• 方法2(配置文件):

修改 settings.txt(路径通过 nvm root 获取):

node_mirror: npmmirror.com/mirrors/nod… npm_mirror: npmmirror.com/mirrors/npm…

  1. 全局包管理

• 问题:不同Node版本独立全局包空间,切换后需重装。

• 解决方案:统一全局包路径(减少重复安装):

npm config set prefix "D:\nvm\node_global" npm config set cache "D:\nvm\node_cache"

并添加路径至系统环境变量 PATH 。


五、最佳实践

  1. 团队协作:项目根目录添加 .nvmrc 文件,确保成员版本一致。

  2. LTS优先:生产环境使用长期支持版(如 v20.x LTS)。

  3. 定期清理:卸载不再使用的版本(nvm uninstall )。

  4. 避免全局依赖:项目级依赖优先本地安装(npm install --save-dev)。

  5. 权限处理:Windows操作需管理员身份运行终端。


六、常见问题解决

  1. 切换版本失败:

◦ 检查路径是否含中文/空格(重装至纯英文路径)。

◦ Windows需确认 NVM_SYMLINK 指向正确快捷方式路径。

  1. 安装后命令未找到:

◦ macOS/Linux:检查Shell配置(.bashrc/.zshrc)是否包含:

export NVM_DIR="HOME/.nvm"[s"HOME/.nvm" [ -s "NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"

◦ Windows:确认环境变量 Path 包含 %NVM_HOME% 和 %NVM_SYMLINK%。

  1. 下载缓慢/失败:

◦ 切换国内镜像源(见四.2)。

◦ 关闭代理或重试:nvm install --insecure(跳过SSL验证)。


七、替代工具推荐

• fnm(Fast Node Manager):跨平台,性能更优,安装命令:

curl -fsSL fnm.vercel.app/install | bash

官方文档:nvm-sh/nvm(github.com/nvm-sh/nvm)…)