在业务中我们会出现不同的项目依赖与不同版本的 node.js,总不能每次跑项目的时候都去重新安装对应版本的 node.js 和依赖,使用 nvm 可以让多个版本的 node.js 共存,并提供管理和切换
nvm 全名 node.js version management,顾名思义:node.js 版本管理工具。
中文介绍镜像站点:https://nvm.p6p.net/
nvm 是 Mac 下的管理工具,如果需要在 Windows 下管理 node.js 版本,则需要下载 nvm-windows。
注意:nvm-windows 并非是 nvm 的移植,俩者关系不大,但是所有 nvm 的命令通过 nvm-windows 得以在 Windows 系统中支持。
nvm-windows:https://github.com/coreybutler/nvm-windows/releases
本文依照 Windows 版本下介绍 nvm(谁让我没有 Mac 呢?摊手~)
提起这个问题不难回答?nvm 是做什么的?管理 node.js 版本。
为什么会需要管理 node.js 版本?显然是因为我们需要使用到多个版本 node.js。
某个历史项目中会限制要求 node.js 必须是 10.* 版本才能跑起来,但是一些的新的项目又要求 14.* 才能使用。
如果没有 nvm 就意味着,我们跑老项目要卸载新的 node.js,跑新项目又要重新装新的 node.js。
仅仅安装 node.js 还不是最令人头疼的,一些公共的指令工具和库都要重新安装,比如:yarn。
在上文提供的链接中下载安装版,nvm-setup.zip。
如果动手能力比较强,可以考虑下载绿色版,不过需要自行配置相关的环境变量,这里就不赘述了。
下一步,点点点,完成安装,打开 CMD,nvm -v 查看是不是安装成功了。
nvm -v
#Running version 1.1.7.
# 查看已经安装的版本
nvm list
# 安装指定的版本
nvm install 10.22.0
# 指定使用的版本
nvm use 10.22.0
# 卸载指定的版本
mvn uninstall 10.22.0
具体版本效果如下图:
以下内容翻译自 nvm 自带的操作提示:
# 显示 nvm 运行在 32/64 位环境
nvm arch
# 安装新的版本
# <version> 指定版本号或使用 latest 安装最新
# [arch] 可选参数,all 表示同时安装 32/64 位(默认当前系统位数)
# 在命令后追加 --insecure 可绕过远程服务器的 SSL
nvm install <version> [arch]
# 显示已安装的列表
# [available] 可选参数,显示所有可安装的列表
nvm list [available]
# 开启版本管理
nvm on
# 关闭版本管理
nvm off
# 设置下载代理
# [url] 可选参数,没有填写则显示当前代理
nvm proxy [url]
# 设置 node.js 镜像
nvm node_mirror [url]
# 设置 npm 镜像
nvm npm_mirror [url]
# 卸载某个版本
nvm uninstall <version>
# 使用切换某个版本,可以 [arch] 指定位数
nvm use [version] [arch]
# 设置不同版本存放目录,默认当前目录
nvm root [path]
# nvm 版本
nvm version
上文中提交 nvm root [path] 可以设置版本存放的位置,默认是在 nvm 的安装路径下。
每个版本中所安装的公共模块独立存在于各自的版本目录下,这意味着当安装新的版本后一些公共库需要重新安装。
但是在该版本下已经安装好的公共库则无需重新安装。
在不同的 node.js 中引入的 npm 是不同的,通过查看 npm 命令的来源位置可以了解是如何运作的。
实际上通过目录结构我们已经能够明白,nvm 是如何实现不同版本间完全隔离的。
实际的 npm 指向就是各自版本的 node_modules 目录下。
nvm 也是通过这种方式实现各个版本间的完全隔离。
温馨提示:系统将通过浏览器临时记忆您曾经填写的个人信息且支持修改,评论提交后仅自己可见,内容需要经过审核后方可全面展示。