利用NVM在系统中维护多个版本的nodejs
0. 背景
开发时可能同时进行多个项目,而这些项目所依赖的node版本又不是一样的。比如我现在的angular项目采用的node是8.9.3版本,而vue项目的vue-cli则依赖更高。由于angular项目相关依赖包历史版本原因,如果统一用高版本的nodejs,会导致打包失败,此时就需要配置多个版本的nodejs。
1. 下载并安装nvm
github链接 https://github.com/coreybutler/nvm-windows/releases
本文用的是window安装版的nvm-setup.zip,其他版本的配置大同小异,可以参考相关资料。如果系统中已经安装了nodejs,最好先卸载掉(nodejs卸载之后,相关的全局npm,gulp等也会一并被删除了,后面需要重新安装)
开始安装nvm,注意路径不要有中文以及空格

配置nodejs的快捷方式,同样注意路径不能有中文以及空格。这个文件夹是映射安装完成的nodejs的,所以这一步完成后,文件夹还不存在。

2. 配置环境变量
我的电脑是win10,其他系统环境变量配置可参考百度。
添加两个用户变量NVM_HOME,NVM_SYMLINK,分别对应开始安装时nvm的路径和nodejs的路径。

再添加PATH

3. 测试nvm
打开cmd控制台,输入 nvm –v ,如果能有下图的提示,说明nvm已配置成功。

注意这里有镜像相关的两个属性,可以配置成淘宝镜像,加快安装nodejs的速度,命令如下:
nvm node_mirror https://npm.taobao.org/mirrors/node/
nvm npm_mirror https://npm.taobao.org/mirrors/npm/
4. 安装nodejs
使用nvm install [版本号]安装

注意:如果操作系统为32位的,使用nvm install [版本号] 命令时,后面要加上32。也就是nvm use [nodejs版本号] 32
再安装11.6.0版本,nvm instal 11.6.0
此时查看node版本,是不成功的,因为我还没启用node版本。

通过nvm list 查看当前已经下载过的node版本

5. 使用nodejs
在使用之前,可以看下目录

通过nvm安装的node版本实际上是在nvm安装文件夹里面的,这也是文章一开始建议先卸载掉原来的node原因。

通过 nvm use [版本号]来使用相关版本,此时再打开目录,生成了nodejs文件夹


下图是我曾经安装nvm时,路径(D:\Program Files)有空格,导致node使用失败。

再次查看系统的nodejs版本

注意:每个node版本下的全局gulp, cnpm, vue等是不一样的,通过nvm use 切换了版本后,都要重新安装。
6. nvm常用命令
- nvm v或者nvm version查看nvm版本号
- nvm install latest 安装最近版本的nodejs;可通过node -v查看nodejs的版本号
- nvm uninstall 版本号: 卸载指定版本的nodejs
- nvm list 陈列出所有已经安装的nodejs版本
- nvm use 版本号 使用指定版本的node
- nvm off: 禁用node.js版本管理(不卸载任何东西)
利用NVM在系统中维护多个版本的nodejs的更多相关文章
- 利用Windows 2003系统中实现两个网段的路由
利用Windows 2003系统中实现两个网段的路由 当一个局域网中存在两个以上网段时,分属于不同网段内的主机彼此互不可见.为了解决这个问 题,就必须在不同的网段之间设置路由器.如果花费上万元资金购买 ...
- 使用pyenv在系统中安装多个版本的python
pyenv的安装与使用 如果没有安装git,首先要安装git apt-get install git 安装完成后,使用自动安装程序提供的单行程进行安装: curl -L https://github. ...
- Linux系统中python默认版本为python2.7,修改为python3 项目上传码云
# 查询系统本系统中安装的python版本 ls -l /usr/bin/python* 1.在虚拟机上新建虚拟环境 # 系统中python默认版本为python2.,可以将其修改为python3 # ...
- 利用workbench对linux/Ubuntu系统中的mysql数据库进行操作
在上一篇文章中,我分享了在linux中如何安装mysql数据库,但是这只是安装了mysql的服务,并没有图形化管理界面,所以这样子操作起来并没有那么方便,那么现在我们就来实现如何利用在window中安 ...
- 利用python求解物理学中的双弹簧质能系统详解
利用python求解物理学中的双弹簧质能系统详解 本文主要给大家介绍了关于利用python求解物理学中双弹簧质能系统的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 物理的 ...
- 李学斌:论复杂系统中的应用间协作V3
说明 本文主要讨论了巨型复杂业务系统的一种构建思路,力图实现决策意志的快速.准确.一致的下传并简化实施成本提供实施效率.通过全业务领域的即时流程编排,实现全网业务IT系统的快速建设与迭代.本文所讲的方 ...
- Android系统中的广播(Broadcast)机制简要介绍和学习计划
在Android系统中,广播(Broadcast)是在组件之间传播数据(Intent)的一种机制:这些组件甚至是可以位于不同的进程中,这样它就像Binder机制一样,起到进程间通信的作用:本文通过一个 ...
- linux系统中,文件的三种特殊权限
背景介绍 在linux系统中,我们熟知有rwx三种权限,对应所有者,同组用户,其他用户三种用户的权限,一共9个位来指定一个文件的权限情况,通过chmod xxx 来更改权限属性,其中xxx是已八进制表 ...
- 针对系统中磁盘IO负载过高的指导性操作
针对系统中磁盘IO负载过高的指导性操作 主要命令:echo deadline > /sys/block/sda/queue/scheduler 注:以下的内容仅是提供参考,如果磁盘IO确实比较大 ...
随机推荐
- Flutter Dialog 屏蔽返回键
使用 WillPopScope + Future.value(false); 屏蔽返回键.代码如下: showDialog<Null>( context: context, // Buil ...
- 查找Ubuntu下包的归属
今天在制作docker时,发现我的程序有些依赖的包不太好找应该安装什么. 在centos下面,可以用命令: rpm -qf <libraryname> 在Ubuntu下面,发现一个网站基本 ...
- es第三篇:Search APIs
大多数search API都是可以操作多个索引的,除了explain API. 当执行一个search API时,可以指定routing参数,去搜索特定的主分片及其副本分片.routing参数值可以是 ...
- 06-oracle 通用函数
--nvl(数字|列名,默认值) 数字或列的值为null显示为0,不为null时显示原值 --nvl2(comm,comm,0)如果comm不为null则显示comm,为null则显示0 --null ...
- cv2.FileNode has no keys
把 python-opencv 版本由3.4.1 换成 3.4.4之后,问题解决
- ViewData与ViewBag的区别
本文导读:在asp.net mvc程序设计中,传递数据常常会用到viewdata.viewbag.ViewData是一个字典集合,通过key值读取对应的value:ViewBag是动态类型,作用和Vi ...
- java中的各种命令参数
java中有很多命令参数,这些命令参数有些是控制jvm行为的,有的则是供应用程序使用.我所了解的参数主要有三种,现在说一说这三种类型的参数. (1)命令行参数. 命令行参数就是类似与c语言的命令行参数 ...
- Xshell关闭导致jar服务终止,使Jar在CentOS后台运行
环境:Xsehll6,CentOS7 在项目文件夹新建一个runjar.sh 在sh中写入(举例说明) nohup java -Dfile.encoding=UTF- -jar fin-mgmt-.j ...
- step5: 编写spider爬取
改写parse函数 实现功能: 1.获取文章列表页中的文章url并交给scrapy下载后,交给解析函数进行具体字段的解析2.获取下一页的url并交给scrapy进行下载,下载完成后交给parse 提取 ...
- EasyUI datebox 日期范围 日期关联
jQuery EasyUI 1.4.5 html: <label>提交日期:</label> <input id="startDate" name=& ...