详解如何使用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 ECMA-262-3 深入解析.第三章.this
Sep 28 Javascript
jquery复选框多选赋值给文本框的方法
Jan 27 Javascript
javascript类型系统_正则表达式RegExp类型详解
Jun 24 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
Apr 14 Javascript
vue.js获取数据库数据实例代码
May 26 Javascript
vue组件实现弹出框点击显示隐藏效果
Oct 26 Javascript
如何使用less实现随机下雪动画详解
Jan 02 Javascript
详解mpvue中使用vant时需要注意的onChange事件的坑
May 16 Javascript
KnockoutJS数组比较算法实例详解
Nov 25 Javascript
JS删除数组指定值常用方法详解
Jun 04 Javascript
javaScript代码飘红报错看不懂?读完这篇文章再试试
Aug 19 Javascript
vue element-ul实现展开和收起功能的实例代码
Nov 25 Vue.js
关于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
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
《PHP编程最快明白》第三讲:php数组
2010/11/01 PHP
php实现文件上传基本验证
2020/03/04 PHP
动态加载iframe
2006/06/16 Javascript
一个小型js框架myJSFrame附API使用帮助
2008/06/28 Javascript
Jquery工作常用实例 使用AJAX使网页进行异步更新
2011/07/26 Javascript
原生js拖拽(第一课 未兼容)拖拽思路
2013/03/29 Javascript
javascript获取web应用根目录的方法
2014/02/12 Javascript
Jquery对数组的操作技巧整理
2014/03/25 Javascript
基于jquery实现的文字向上跑动类似跑马灯的效果
2014/06/17 Javascript
jQuery $.each遍历对象、数组用法实例
2015/04/16 Javascript
javascript单页面手势滑屏切换原理详解
2016/03/21 Javascript
jQuery实现漂亮实用的商品图片tips提示框效果(无图片箭头+阴影)
2016/04/16 Javascript
nodejs中模块定义实例详解
2017/03/18 NodeJs
解决npm安装Electron缓慢网络超时导致失败的问题
2018/02/06 Javascript
深入探讨JavaScript的最基本部分之执行上下文
2019/02/12 Javascript
vue滚动插件better-scroll使用详解
2019/10/18 Javascript
基于canvasJS在PHP中制作动态图表
2020/05/30 Javascript
跟老齐学Python之再深点,更懂list
2014/09/20 Python
Python实现字符串反转的常用方法分析【4种方法】
2017/09/30 Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
2017/11/21 Python
详解Pytorch 使用Pytorch拟合多项式(多项式回归)
2018/05/24 Python
详解PyCharm配置Anaconda的艰难心路历程
2018/08/13 Python
Python flask框架post接口调用示例
2019/07/03 Python
Django框架下静态模板的继承操作示例
2019/11/08 Python
浅谈PyQt5中异步刷新UI和Python多线程总结
2019/12/13 Python
详解pandas获取Dataframe元素值的几种方法
2020/06/14 Python
python 递归相关知识总结
2021/03/03 Python
CSS3图片旋转特效(360/60/-360度)
2013/10/10 HTML / CSS
简单整理HTML5的基本特性和语法
2016/02/18 HTML / CSS
nohup的用法
2012/11/26 面试题
我的求职计划书
2014/01/10 职场文书
最新创业融资计划书
2014/01/19 职场文书
纠风工作实施方案
2014/03/15 职场文书
2015年收银工作总结范文
2015/04/01 职场文书
费城故事观后感
2015/06/10 职场文书