详解如何使用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 相关文章推荐
Javascript面向对象编程(二) 构造函数的继承
Aug 28 Javascript
基于jquery的点击链接插入链接内容的代码
Jul 31 Javascript
JS实现根据用户输入分钟进行倒计时功能
Nov 14 Javascript
javascript 面向对象function详解及实例代码
Feb 28 Javascript
jQuery插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
Apr 10 jQuery
js实现canvas保存图片为png格式并下载到本地的方法
Aug 31 Javascript
Servlet3.0与纯javascript通过Ajax交互的实例详解
Mar 18 Javascript
vue.js动画中的js钩子函数的实现
Jul 06 Javascript
Vue分页器实现原理详解
Jun 28 Javascript
Vue 实现从文件中获取文本信息的方法详解
Oct 16 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
Oct 25 Javascript
在Vuex中Mutations修改状态操作
Jul 24 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的变量类型和作用域详解
2014/03/12 PHP
在Win7 中为php扩展配置Xcache
2014/10/08 PHP
PHP+MySQL实现在线测试答题实例
2020/01/02 PHP
Jquery 的扩展方法总结
2011/10/01 Javascript
jQuery easyui datagrid动态查询数据实例讲解
2013/02/26 Javascript
使用js简单实现了tree树菜单
2013/11/20 Javascript
jquery使用append(content)方法注意事项分享
2014/01/06 Javascript
javascript使用百度地图api和html5特性获取浏览器位置
2014/01/10 Javascript
jQuery简单图表peity.js使用示例
2014/05/02 Javascript
javascript模拟map输出与去除重复项的方法
2015/02/09 Javascript
JavaScript设置获取和设置属性的方法
2015/03/04 Javascript
javascript中动态函数用法实例分析
2015/05/14 Javascript
AngularJS初始化静态模板详解
2016/01/14 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
2016/05/10 Javascript
js编写一个简单的产品放大效果代码
2016/06/27 Javascript
通过JS获取Request.QueryString()参数的值实现方法
2016/09/27 Javascript
使用imba.io框架得到比 vue 快50倍的性能基准
2019/06/17 Javascript
[01:03:59]2018DOTA2亚洲邀请赛3月30日 小组赛B组VGJ.T VS Secret
2018/03/31 DOTA
使用Python编写Linux系统守护进程实例
2015/02/03 Python
python中urlparse模块介绍与使用示例
2017/11/19 Python
python在每个字符后添加空格的实例
2018/05/07 Python
Django中间件实现拦截器的方法
2018/06/01 Python
基于numpy中数组元素的切片复制方法
2018/11/15 Python
浅谈python中get pass用法
2019/03/19 Python
python多线程http压力测试脚本
2019/06/25 Python
Django的Modelforms用法简介
2019/07/27 Python
python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)
2020/08/11 Python
python 多线程共享全局变量的优劣
2020/09/24 Python
python 利用openpyxl读取Excel表格中指定的行或列教程
2021/02/06 Python
python解包概念及实例
2021/02/17 Python
耐克美国官网:Nike.com
2016/08/01 全球购物
高分子材料与工程专业推荐信
2013/12/01 职场文书
向雷锋同志学习倡议书
2015/04/27 职场文书
电力企业职工培训心得体会
2016/01/11 职场文书
GoFrame基于性能测试得知grpool使用场景
2022/06/21 Golang
MySQL池化框架学习接池自定义
2022/07/23 MySQL