📖nvm管理node.js和npm多版本切换

发布: 2020-08-21
热度: 46
趋势: 46
权重: 0
🎯

在业务中我们会出现不同的项目依赖与不同版本的 node.js,总不能每次跑项目的时候都去重新安装对应版本的 node.js 和依赖,使用 nvm 可以让多个版本的 node.js 共存,并提供管理和切换

nvm

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

提起这个问题不难回答?nvm 是做什么的?管理 node.js 版本。

为什么会需要管理 node.js 版本?显然是因为我们需要使用到多个版本 node.js。

某个历史项目中会限制要求 node.js 必须是 10.* 版本才能跑起来,但是一些的新的项目又要求 14.* 才能使用。

SC-242-nvmnjs1.png

如果没有 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

具体版本效果如下图:

SC-243-nvmnjs2.png

其他命令

以下内容翻译自 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 的安装路径下。

每个版本中所安装的公共模块独立存在于各自的版本目录下,这意味着当安装新的版本后一些公共库需要重新安装。

但是在该版本下已经安装好的公共库则无需重新安装。

SC-244-nvmnjs3.png

npm 指向

在不同的 node.js 中引入的 npm 是不同的,通过查看 npm 命令的来源位置可以了解是如何运作的。

实际上通过目录结构我们已经能够明白,nvm 是如何实现不同版本间完全隔离的。

SC-245-nvmnjs4.png

实际的 npm 指向就是各自版本的 node_modules 目录下。

nvm 也是通过这种方式实现各个版本间的完全隔离。

当前文章暂无讨论,留下脚印吧!
大纲
  • nvm
    • 为什么需要 nvm
  • 安装使用
    • 安装
    • 基本使用命令
    • 其他命令
    • 目录结构
    • npm 指向
提交成功,请等待审核通过后全面展示!

发表评论

昵称
邮箱
链接
签名
评论

温馨提示:系统将通过浏览器临时记忆您曾经填写的个人信息且支持修改,评论提交后仅自己可见,内容需要经过审核后方可全面展示。

选择头像