详解如何使用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 相关文章推荐
DHTML Slide Show script图片轮换
Mar 03 Javascript
window.parent调用父框架时 ie跟火狐不兼容问题
Jul 30 Javascript
JavaScript中使用replace结合正则实现replaceAll的效果
Jun 04 Javascript
基于jquery的返回顶部效果(兼容IE6)
Jan 17 Javascript
jQuery插件开发全解析
Oct 10 Javascript
JavaScript中的this关键字介绍与使用实例
Jun 21 Javascript
超炫的jquery仿flash导航栏特效
Nov 11 Javascript
在JavaScript中call()与apply()区别
Jan 22 Javascript
JavaScript数据绑定实现一个简单的 MVVM 库
Apr 08 Javascript
angularjs中的$eval方法详解
Apr 24 Javascript
Vuejs实现购物车功能
Nov 05 Javascript
如何使用puppet替换文件中的string
Dec 06 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
重新封装zend_soap实现http连接安全认证的php代码
2011/01/12 PHP
PHP添加Xdebug扩展的方法
2014/02/12 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
2014/05/28 PHP
destoon实现公司新闻详细页添加评论功能的方法
2014/07/15 PHP
文本加密解密
2006/06/23 Javascript
JavaScript 页面编码与浏览器类型判断代码
2010/06/03 Javascript
js 验证密码强弱的小例子
2013/03/21 Javascript
上传图片预览JS脚本 Input file图片预览的实现示例
2014/10/23 Javascript
node.js中的buffer.Buffer.isEncoding方法使用说明
2014/12/14 Javascript
基于zepto.js实现仿手机QQ空间的大图查看组件ImageView.js详解
2015/03/05 Javascript
jQuery经过一段时间自动隐藏指定元素的方法
2015/03/17 Javascript
JQuery实现动态添加删除评论的方法
2015/05/18 Javascript
jquery操作angularjs对象
2015/06/26 Javascript
js实现的星星评分功能函数
2015/12/09 Javascript
浅谈javascript中的事件冒泡和事件捕获
2016/12/28 Javascript
JavaScript实现前端分页控件
2017/04/19 Javascript
nodejs mysql 实现分页的方法
2017/06/06 NodeJs
关于前后端json数据的发送与接收详解
2017/07/30 Javascript
JS同步、异步、延迟加载的方法
2018/05/05 Javascript
jQuery基于闭包实现的显示与隐藏div功能示例
2018/06/09 jQuery
nodejs检测因特网是否断开的解决方案
2019/04/17 NodeJs
vue proxy 的优势与使用场景实现
2020/06/15 Javascript
Node.js利用Express实现用户注册登陆功能(推荐)
2020/10/26 Javascript
python thrift搭建服务端和客户端测试程序
2018/01/17 Python
通过Py2exe将自己的python程序打包成.exe/.app的方法
2018/05/26 Python
Python基本数据结构之字典类型dict用法分析
2019/06/08 Python
Django-Model数据库操作(增删改查、连表结构)详解
2019/07/17 Python
改变生活的男士内衣:SAXX Underwear
2019/08/28 全球购物
俄罗斯汽车零件和配件在线商店:CarvilleShop
2019/11/29 全球购物
英国标志性生活方式品牌:Skinnydip London
2019/12/15 全球购物
个人委托书格式
2014/04/04 职场文书
村庄绿化方案
2014/05/07 职场文书
年度评优评先方案
2014/06/03 职场文书
白莲教口号
2014/06/18 职场文书
授权委托书(公民个人适用)
2014/09/19 职场文书
Spring this调用当前类方法无法拦截的示例代码
2022/03/20 Java/Android