文章目录
一篇文章搞懂 nvm:管理 Node.js 版本的利器
更多文章详见微信公众号: 码路小匠
什么是 nvm?
nvm 全称是 Node Version Manager,翻译过来就是 “Node 版本管理器”。简单来说,它就是一个能让你在电脑上同时安装和切换不同 Node.js 版本的工具。
想象一下你是个厨师,nvm 就像是你的调料架,上面放着各种不同口味的调料(Node.js 版本),你可以根据需要随时取用,而不用每次都重新买新的调料。
为什么要用 nvm?
- 项目需要不同版本:有些老项目可能只能用旧版 Node.js 运行,而新项目又需要新版功能
- 避免全局污染:不用每次切换版本都重装 Node.js
- 测试兼容性:可以快速测试你的代码在不同 Node.js 版本下的表现
- 学习新特性:想体验最新版 Node.js 又不想影响现有项目
安装 nvm
Windows 用户
Windows 用户要用 nvm-windows:
- 卸载已安装的 Node.js
- 下载安装包(推荐下载 nvm-setup.zip)
- 双击安装,一路下一步
- 安装完成后打开命令行输入
nvm -v
检查是否安装成功
Mac/Linux 用户
打开终端运行安装脚本:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
安装完成后关闭再重新打开终端,输入 nvm -v
检查是否安装成功。
如果提示命令找不到,可能需要把下面这行加到你的 .bashrc
或 .zshrc
文件里:
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
nvm 基本使用
查看可用版本
nvm ls-remote # 查看所有可安装的版本
nvm ls # 查看本地已安装的版本
安装指定版本
nvm install 14.17.0 # 安装特定版本
nvm install 16 # 安装16系列最新版
nvm install node # 安装最新稳定版
切换版本
nvm use 14.17.0 # 切换到指定版本
nvm use node # 使用最新稳定版
nvm use 16 # 使用16系列最新安装的版本
设置默认版本
nvm alias default 16 # 设置默认使用16系列最新版
其他常用命令
nvm current # 查看当前使用的版本
nvm run 14 app.js # 用指定版本运行脚本
nvm which 16 # 查看16版本的安装路径
nvm uninstall 12 # 卸载指定版本
实际使用场景
场景1:新项目用新版,老项目用旧版
假设你正在维护一个老项目,用的是 Node.js 12,同时又要开发一个新项目需要用 Node.js 16:
# 进入老项目目录
cd ~/projects/old-project
nvm use 12
npm start
# 打开新终端进入新项目
cd ~/projects/new-project
nvm use 16
npm start
场景2:测试代码在不同版本的兼容性
nvm use 12
node test.js
nvm use 14
node test.js
nvm use 16
node test.js
场景3:尝鲜最新版但不影响现有项目
nvm install node # 安装最新版
nvm use node # 切换到最新版
node -v # 看看有什么新功能
常见问题
1. 安装慢怎么办?
可以设置淘宝镜像:
# 设置node镜像
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
# 设置npm镜像
npm config set registry https://registry.npm.taobao.org
2. 切换版本后全局安装的包还在吗?
不在!每个 Node.js 版本都有自己的全局包空间。解决办法:
- 在每个版本中都重新安装需要的全局包
- 使用
nvm reinstall-packages
命令从另一个版本复制全局包
nvm install 16 --reinstall-packages-from=14
3. 为什么切换版本后命令不生效?
有时候可能需要关闭终端重新打开,或者手动重新加载 nvm:
source ~/.nvm/nvm.sh
小技巧
-
版本别名:给常用版本起个易记的名字
nvm alias awesome-version 14.17.0 nvm use awesome-version
-
自动切换:在项目根目录放一个
.nvmrc
文件,内容写版本号(如 “14.17.0”),然后运行nvm use
会自动切换 -
快速安装:
nvm install --lts
直接安装最新的 LTS(长期支持)版本
总结
nvm 就像 Node.js 版本的时光机,让你在不同版本间自由穿梭。刚开始可能会觉得有点复杂,但用顺手后你会发现它简直是开发必备神器。记住几个关键点:
nvm install
安装版本nvm use
切换版本nvm ls
查看已安装版本