前言
最近,公司接了个二开的项目,前端用了较旧的技术栈,前端同事试了好几个node版本,最终确认该项目必须要使用node:v14.x.x 版本才能进行编译。
作为一个后端,有时候本地需要运行前端项目进行调试,所以一般都会在自己本地装好node环境,环境如下:
- node: v16.20.2
- npm: v8.19.4
怎么搞?npm i 报错各种报错啊,既然知道是node版本问题,那有没有类似于java 里面的maven 指定build jdk版本呢?google一下:如何管理多个node
nvm 安装
先找nvm的官网:https://github.com/nvm-sh/nvm,然后就看到这么一段描述:
nvm allows you to quickly install and use different versions of node via the command line.
谷歌翻译:nvm 允许您通过命令行快速安装和使用不同版本的node。
前提条件
- 有 git 环境
- 卸载掉以前全局安装的node及npm(不然后续使用nvm管理,会提示权限问题)
安装nvm
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
看安装过程中输出的日志,提示我们需要配置环境变量:
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
验证安装
nvm -v
0.39.5
能正确输出mvn的版本号,说明完成nvm的安装,接下来,我们看看如何去使用它。
nvm 使用
首先,我们先搞清楚自己的需求是什么?
- 需要安装多个ndoe版本,已知,node:v14.x.x 、node:v16.x.x,一个是老项目的运行环境,一个是新项目的运行环境。
- 需要随时切换node环境。
在这个过程中,我们需要的命令如下(常用):
- 安装 node 指定版本 - nvm install [remote 版本]
- 切换当前的node版本 - nvm use [local 版本]
- 查看remoet可用的node版本 - nvm ls-remote
- 查看本地可用的node版本 - nvm ls
# 查看远程可用的node版本,一般选lst(长期维护)的标记的标本
nvm ls-remote
# 安装14.21.3 版本node
nvm install v14.21.3
# 安装 16.20.2 版本的node
nvm install v16.20.2
# 查看本地node列表
nvm ls
# 切换当前node
nvm use 14