详解如何使用nvm管理Node.js多版本


Posted in Javascript onMay 06, 2019

Node.js版本管理工具。Git地址:https://github.com/nvm-sh/nvm

安装nvm

Mac OS:

如果已经安装了node,在安装nvm之前,不需要卸载这个版本的node。这个版本的node后续会成为nvm中的system版本的node。

具体步骤如下:

首先安装C++编译器,使用XCode 的命令行工具,在Terminal中输入: xcode-select --install

然后在Terminal里输入:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash

或者:

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash

⚠️注意:命令中的v0.34.0是随着最新版本变化的。可以去Git查看最新的版本。

重启Terminal(不然nvm不生效),然后输入下面的指令来查看是否安装成功: command -v nvm。如果返回 nvm 字样,就代表安装成功。

用nvm操作node

查看目前已有的node

如果在安装nvm之前,系统已经安装了Node.js,那么这个版本的Node.js将会成为system版本。

此时,在Terminal里输入:nvm ls,查看都安装了哪些node版本,会出现如下返回结果:

->    system
iojs -> N/A (default)
node -> stable (-> N/A) (default)
unstable -> N/A (default)

上面返回的内容,代表,此时只有系统原来带的node版本,没有通过nvm安装任何的node版本。

安装其它版本的node

安装最新版本的node:

nvm install node

安装特定版本的node:

nvm install 10.15.3

其中,10.15.3为想要安装的node的版本号。

可以查看目前有哪些node可以安装:

nvm ls-remote

安装一个node的新版本以后,通过指令 nvm ls 查看会返回如下结果:

->   v10.15.3
     system
default -> 10.15.3 (-> v10.15.3)
node -> stable (-> v10.15.3) (default)
stable -> 10.15 (-> v10.15.3) (default)
iojs -> N/A (default)
unstable -> N/A (default)
lts/* -> lts/dubnium (-> v10.15.3)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.16.0 (-> N/A)
lts/dubnium -> v10.15.3

可以发现,除了system以外,还出现了一个v10.15.3,而且自动应用了这个v10.15.3版本。

node版本切换

使用如下指令切换node版本:

nvm use system

返回如下内容,代表已经切换到system版本:

Now using system version of node: v8.11.3 (npm v6.9.0)

输入如下指令,切换到刚刚安装的版本:

nvm use 10.15.3

返回如下内容,代表已经切换到10.15.3版本:

Now using node v10.15.3 (npm v6.4.1)

对于目前的10.15.3,应为它是第一个通过nvm安装的node版本,所以自动给它分配了一个alias:default。所以,也可以通过这个指令切换到这个版本上:

nvm use default

也可以通过这个指令切换到已安装的最新的版本:

nvm use node

由于目前最新的版本就是default的10.15.3,所以就等同于nvm use default。

再安装一个版本:8.16.0。输入指令nvm install 8.16.0,返回如下内容:

->   v8.16.0
    v10.15.3
     system
default -> 10.15.3 (-> v10.15.3)
node -> stable (-> v10.15.3) (default)
stable -> 10.15 (-> v10.15.3) (default)
iojs -> N/A (default)
unstable -> N/A (default)
lts/* -> lts/dubnium (-> v10.15.3)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.16.0
lts/dubnium -> v10.15.3

发现比之前多了一行-> v8.16.0,并且8.16.0被应用。

给特定版本分配alias

从8.16.0切换到别的版本以后,如果再想切换回来,只能通过nvm use 8.16.0。8.16.0不方便记忆,也不方便输入,可以通过给这个版本设置一个alias,来解决这个问题。输入如下指令:

nvm alias carbon 8.16.0

返回的结果:

carbon -> 8.16.0 (-> v8.16.0)

此时,再次输入nvm ls,会返回如下结果:

->   v8.16.0
    v10.15.3
     system
carbon -> 8.16.0 (-> v8.16.0)
default -> 10.15.3 (-> v10.15.3)
node -> stable (-> v10.15.3) (default)
stable -> 10.15 (-> v10.15.3) (default)
iojs -> N/A (default)
unstable -> N/A (default)
lts/* -> lts/dubnium (-> v10.15.3)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.16.0
lts/dubnium -> v10.15.3

会发现多了一行carbon -> 8.16.0 (-> v8.16.0),这代表carbon就是版本8.16.0,所以如果想切换到8.16.0,可以输入如下指令:

nvm use carbon

也可以通过alias指令,改变default所代表的版本:

nvm alias default 8.16.0

8.16.0就成为default版本了。

输入nvm alias可以查看都有哪些已经设置好的alias。

还可以通过nvm unalias carbon来取消carbon这个alias。

卸载node

nvm uninstall alias/node

注意:不能卸载当前正在运行中的node版本。

可以通过nvm uninstall来查看有哪些版本可以卸载。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
一个可以兼容IE FF的加为首页与加入收藏实现代码
Nov 02 Javascript
JS执行删除前的判断代码
Feb 18 Javascript
浅谈下拉菜单中的Option对象
May 10 Javascript
Javascript中匿名函数的调用与写法实例详解(多种)
Jan 26 Javascript
设计模式中的组合模式在JavaScript程序构建中的使用
May 18 Javascript
在JavaScript中对HTML进行反转义详解
May 18 Javascript
js调用屏幕宽度的简单方法
Nov 14 Javascript
javascript replace()第二个参数为函数时的参数用法
Dec 26 Javascript
详解基于Bootstrap+angular的一个豆瓣电影app
Jun 26 Javascript
浅谈Angular4实现热加载开发旅程
Sep 08 Javascript
react native 获取地理位置的方法示例
Aug 28 Javascript
简单了解Ajax表单序列化的实现方法
Jun 14 Javascript
关于AOP在JS中的实现与应用详解
May 06 #Javascript
JS使用iView的Dropdown实现一个右键菜单
May 06 #Javascript
一文读懂ES7中的javascript修饰器
May 06 #Javascript
JavaScript中AOP的实现与应用
May 06 #Javascript
使用 vue 实现灭霸打响指英雄消失的效果附demo
May 06 #Javascript
vue如何截取字符串
May 06 #Javascript
用vscode开发vue应用的方法步骤
May 06 #Javascript
You might like
创建数据库php代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
Windows下利用Gvim写PHP产生中文乱码问题解决方法
2011/04/20 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
2016/07/25 PHP
PHP排序二叉树基本功能实现方法示例
2018/05/26 PHP
js关闭当前页面(窗口)的几种方式总结
2013/03/05 Javascript
jquery实现div阴影效果示例代码
2013/09/16 Javascript
JS onmousemove鼠标移动坐标接龙DIV效果实例
2013/12/16 Javascript
Node.js中的缓冲与流模块详细介绍
2015/02/11 Javascript
javascript中CheckBox全选终极方案
2015/05/20 Javascript
浅析在javascript中创建对象的各种模式
2016/05/06 Javascript
js鼠标经过tab选项卡时实现切换延迟
2017/03/24 Javascript
jQuery+Ajax实现用户名重名实时检测
2017/06/01 jQuery
图片懒加载imgLazyLoading.js使用详解
2020/09/15 Javascript
详解关于Vue2.0路由开启keep-alive时需要注意的地方
2018/09/18 Javascript
vue文件运行的方法教学
2019/02/12 Javascript
微信小程序时间戳转日期的详解
2019/04/30 Javascript
详解vue 命名视图
2019/08/14 Javascript
node+vue实现文件上传功能
2020/05/28 Javascript
关于angular引入ng-zorro的问题浅析
2020/09/09 Javascript
React 条件渲染最佳实践小结(7种)
2020/09/27 Javascript
JS模拟实现京东快递单号查询
2020/11/30 Javascript
详解Python中的文本处理
2015/04/11 Python
Python中函数参数设置及使用的学习笔记
2016/05/03 Python
完美解决Python2操作中文名文件乱码的问题
2017/01/04 Python
Python虚拟环境virtualenv的安装与使用详解
2017/05/28 Python
Python中字典和集合学习小结
2017/07/07 Python
python 实现判断ip连通性的方法总结
2018/04/22 Python
美国宠物美容和宠物用品购物网站:Cherrybrook
2018/12/07 全球购物
美国手机支架公司:PopSockets
2019/11/27 全球购物
医药大学生求职简历的自我评价
2013/10/17 职场文书
高中毕业生自我鉴定例文
2013/12/29 职场文书
幼儿运动会邀请函
2014/01/17 职场文书
网页美工求职信
2014/02/15 职场文书
2014年销售内勤工作总结
2014/12/01 职场文书
瘦西湖导游词
2015/02/03 职场文书
Html5大屏数据可视化开发的实现
2021/06/11 HTML / CSS