详解如何使用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 相关文章推荐
jQuery html()等方法介绍
Nov 18 Javascript
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
Mar 04 Javascript
一个简单的Ext.XTemplate的实例代码
Mar 18 Javascript
利用json获取字符出现次数的代码
Mar 22 Javascript
PHP abstract与interface之间的区别
Nov 11 Javascript
jQuery中offset()方法用法实例
Jan 16 Javascript
Angular懒加载机制刷新后无法回退的快速解决方法
Aug 30 Javascript
node.JS md5加密中文与php结果不一致的解决方法
May 05 Javascript
Vue2.X 通过AJAX动态更新数据
Jul 17 Javascript
基于Webpack4和React hooks搭建项目的方法
Feb 05 Javascript
javascript 构建模块化开发过程解析
Sep 11 Javascript
Vue+Bootstrap收藏(点赞)功能逻辑与具体实现
Oct 22 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 不错的学习资料
2009/02/06 PHP
php文件下载处理方法分析
2015/04/22 PHP
浅析Yii2缓存的使用
2016/05/10 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
Laravel向公共模板赋值方法总结
2019/06/25 PHP
jquery DOM操作 基于命令改变页面
2010/05/06 Javascript
基于jquery的商品展示放大镜
2010/08/07 Javascript
THREE.JS入门教程(5)你应当知道的十件事
2013/01/24 Javascript
Angular实现form自动布局
2016/01/28 Javascript
用js动态添加html元素,以及属性的简单实例
2016/07/19 Javascript
AngularJS自定义控件实例详解
2016/12/13 Javascript
ThinkJS中如何使用MongoDB的CURD操作
2016/12/13 Javascript
js生成随机数方法和实例
2017/01/17 Javascript
js自定义Tab选项卡效果
2017/06/05 Javascript
微信小程序常用简易小函数总结
2019/02/01 Javascript
详解React服务端渲染从入门到精通
2019/03/28 Javascript
javascript面向对象三大特征之继承实例详解
2019/07/24 Javascript
vue项目从node8.x升级到12.x后的问题解决
2019/10/25 Javascript
详解vue3.0 diff算法的使用(超详细)
2020/07/01 Javascript
Python实现的金山快盘的签到程序
2013/01/17 Python
python实现计算资源图标crc值的方法
2014/10/05 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
2019/08/02 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
2019/08/12 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
2019/08/23 Python
Python猜数字算法题详解
2020/03/01 Python
Python实现进度条和时间预估的示例代码
2020/06/02 Python
Python scrapy爬取小说代码案例详解
2020/07/09 Python
python实现单机五子棋
2020/08/28 Python
python matplotlib库的基本使用
2020/09/23 Python
JD Sports瑞典:英国领先的运动时尚商店
2018/01/28 全球购物
介绍一下linux的文件权限
2012/02/15 面试题
个人自我鉴定总结
2014/03/25 职场文书
MySQL外键约束(FOREIGN KEY)案例讲解
2021/08/23 MySQL
Django实现WebSocket在线聊天室功能(channels库)
2021/09/25 Python
一篇文章带你掌握SQLite3基本用法
2022/06/14 数据库
一文了解Java动态代理的原理及实现
2022/07/07 Java/Android