场景

最近遇到一些node的坑,比如6.3.0版的node用不了公司最新的工作流,升级到10.x版的node后,又用不了另一套工作流。

问题

怎么实现node版本降级、升级?是否可以安装多个版本按需要进行切换?

使用n
windows用户
不存在node模块冲突
节约硬盘空间(只会保留一份全局node模块)
觉得修改bashrc配置麻烦

使用nvm
node版本较多较复杂,需要考虑node模块的兼容性
本机以后会有更多node项目(还是node模块兼容)
不在乎硬盘空间(不同版本都会安装自有的node模块)

解决方案一(n)

(1)安装node版本管理模块n

sudo npm install n -g

下边步骤请根据自己需要选择

(2)安装稳定版

sudo n stable

(3)安装最新版

sudo n latest

(4) 版本降级/升级

sudo n 版本号

比如需要8.4.0版:

(5)检测目前安装了哪些版本的node

n

如图,本人安装了四个版本,目前处于8.4.0:

(6)切换版本(不会删除已经安装的其他版本)

n 版本号

比如切换到11.4.0版:n 11.4.0,运行后查看版本号 ,可见当前已经处于11.4.0:

(7)删除版本

sudo n rm 版本号

比如删除本人电脑存在的6.9.1版可使用sudo n rm 6.9.1

输入密码,回车即可删除指定版本,如图,6.9.1已移除:

提示:
演示系统:macOS High Sierra 10.13.2;sudo是mac下输入密码验证身份的命令,因此windows用户应该是以管理员身份运行命令行工具,然后删除sudo即可。
举个例子:删除版本mac下是sudo n rm 版本号,windows下应该是n rm 版本号。

解决方案二(nvm)

前言
nvm 管理不同版本的 node 与 npm
nvm 是 NodeJS 的多版本管理工具,有点类似管理 Ruby 的 rvm,如果是需要管理 Windows 下的 node,官方推荐是使用 nvmw 或 nvm-windows 。

首先得卸载已安装的全局 node/npm

在官网下载的 node 安装包,运行后会自动安装在全局目录,其中node 命令在 /usr/bin/node ,npm 命令在全局 node_modules 目录中,具体路径为 /usr/lib[lib64]/node_modules/npm。

安装 nvm 之后最好先删除下已安装的 node 和全局 node 模块:

npm ls -g --depth=0 // 查看已经安装在全局的模块,以便删除这些全局模块后再按照不同的 node 版本重新进行全局安装sudo rm -rf /usr/lib[lib64]/node_modules // 删除全局 node_modules 目录
sudo rm /usr/bin/node // 删除 node
cd /usr/bin && ls -l | grep "../lib/node_modules/" | awk '{print $9}'| xargs rm // 删除全局 node 模块注册的软链// suse uninstall zypper install package
zypper uninstall node

第一步:下载
nvm-windows 下载地址:https://github.com/coreybutler/nvm-windows/releases

第二步:安装

解压后,直接安装,我这里使用的是默认路径,也可以自己选择路径,但路径最好不要带中文。

检查 nvm 是否安装完成(nvm -v),结果报错:

第一反应是环境变量配置有问题,但是检查环境变量后,发现无异常。


由于之前使用 npm 下载安装过 angular cli,vue-cli,webpack 等等,所以需要删了下面的文件。

C:\Users\Administrator\AppData\Roaming\npm
C:\Users\Administrator\AppData\Roaming\npm-cache

再次执行 nvm 看到如下信息表示安装成功。

第三步:修改settings.txt
在你安装的目录下找到settings.txt文件,打开后加上

node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/

这一步主要是将npm镜像改为淘宝的镜像,可以提高下载速度。

第四步:node.js 安装
接下来使用 nvm 命令安装某个版本的 nodejs:

nvm install 4.7.0

NVM常用命令

nvm install stable  //安装最新版 node
nvm install [node版本号]  //安装指定版本的node
nvm ls // 查看已安装版本
nvm use [node版本号]  //切换到指定版本的node
nvm alias default [node版本号] //设置默认版本
nvm list installed 查看已经安装的版本
nvm list available 查看网络可以安装的版本
nvm version 查看当前的版本
nvm install 安装最新版本nvm
nvm use <version> ## 切换使用指定的版本node
nvm current显示当前版本
nvm alias <name> <version> ## 给不同的版本号添加别名
nvm unalias <name> ## 删除已定义的别名
nvm reinstall-packages <version> ## 在当前版本node环境下,重新全局安装指定版本号的npm包
nvm on 打开nodejs控制
nvm off 关闭nodejs控制
nvm proxy 查看设置与代理
nvm node_mirror [url] 设置或者查看setting.txt中的node_mirror,如果不设置的默认是 https://nodejs.org/dist/
nvm npm_mirror [url] 设置或者查看setting.txt中的npm_mirror,如果不设置的话默认的是:https://github.com/npm/npm/archive/
nvm uninstall <version> 卸载制定的版本
nvm use [version] [arch] 切换制定的node版本和位数
nvm root [path] 设置和查看root路径

参考文献
https://www.jb51.net/article/203647.htm
https://www.jb51.net/article/127421.htm

Node 版本管理 快速切换版本、版本回退(降级)、版本更新(升级)相关推荐

  1. IE浏览器快速切换各个版本

    IE兼容性容易出现问题, 如何快速切换浏览器版本 1.打开IE浏览器 2.按下F12键 3. 仿真页签, 切换不同版本

  2. pycharm快速切换多版本python编译环境

    如何用pycharm快速切换多版本python编译环境? 1.安装多版本python. 在安装路径下存在多个版本的文件夹. 用CMD输入python查看版本,只显示高版本的,怎么办呢? 2.修改低版本 ...

  3. Node快速切换版本、版本回退(降级)、版本更新(升级)

    解决方案一(n) n github地址: https://github.com/tj/n 全局安装n npm install -g n 安装最新稳定版 node n stable 安装最新版本 nod ...

  4. linux下安装nvm进行node的版本的快速切换

    NVM是什么? nvm (Node Version Manager) 是Nodejs版本管理器,可对不同的node版本快速进行切换. 为什么要用NVM? 基于node的工具和项目越来越多,但是每个项目 ...

  5. mac下多个php版本快速切换的方法

    php是为了快速构建一个web页面而迅速被大家广为接受的开源语言,通过不断发展已经有了很多的php开源系统,满足了目前大部分用户的站点需求.1995年初php诞生到现在已经存在多个版本,并且每个版本都 ...

  6. 〖Linux〗多个JDK版本之间快速切换

    由于工作的需要,经常要切换JDK版本比如我HOME目录下有三个JDK版本: ~/apt/jdk1.6.0_34 # JDK6 ~/apt/jdk1.7.0_67 # JDK7 ~/apt/jdk1.8 ...

  7. Windows10下Node版本管理与随意切换

    Windows下Node版本管理与随意切换 使用GNVM 环境 问题一:无权操作文件 问题二:文件被占用 问题三:node版本不存在 `GNVM` 是一个简单的 `Windows` 下 Node.js ...

  8. 过去一年25个amazing node.js 开源项目(2018版本)

    2019独角兽企业重金招聘Python工程师标准>>> 过去一年25个令人惊奇的node.js开源项目(2018版本) 过去一年, 我们已经比较了近4,700个Node.js开源项目 ...

  9. 安装了多个java 如何切换java版本

    安装了多个java 如何切换java版本 问题描述 平常用的是java8,最近在学习java的新特性.这就需要从java8往更高的java版本切换.由于还在使用java8,测试完新特性后我需要再切换回 ...

最新文章

  1. 【从零学习OpenCV 4】4种读取Mat类元素的的方法
  2. 大数据时代云计算在新媒体平台的应用研究
  3. 9.Windows线程切换_TSS
  4. hover如何改变子元素或其他同级元素?(用不了怎么回事?)
  5. (2015-12-09)java.util.Arrays的用法
  6. 以计算机网络为中介的人际传播,以计算机为中介的人际传播理论范式
  7. Java面试——线程池
  8. Leetcode每日一题:100.same-tree(相同的树)
  9. Median Filtering in Constant time 算法源码生成DLL
  10. authware链接html文件,authorware是什么软件?
  11. CsharpVB教程下载
  12. MySQL卸载干净检查_MySQL数据库卸载干净处理
  13. SIP信令跟踪工具HOMER
  14. 二手房交易有哪些税费?
  15. Unity中游戏的存档与读档
  16. PHP RGB图片模式转换CMYK模式图片
  17. 【quill-editor】富文本编辑器对图片的放大缩小拖拽的实现
  18. 颁奖 | 获奖名单又来惹~!有你咩?
  19. MAN 手册各章节功能介绍及快捷键键位整理
  20. mysql存emoji_如何在MySQL中存储emoji?

热门文章

  1. ubuntu下新建txt文档的快捷方式
  2. 【无标题】楔子第一章
  3. vscode +phpstudy 搭建php调试环境
  4. 2020-01-17 windows 10 pro 安装mysql-5.7.29-winx64.zip
  5. char 数组 解析
  6. char数组转int数组
  7. 华为否认Mate40升级鸿蒙传闻,华为鸿蒙系统什么时候上市?华为否认Mate40升级鸿蒙传闻(2)...
  8. 第十三周 【项目2 - 二叉树排序树中查找的路径】
  9. 单田芳白眉大侠全320回下载
  10. 介绍Azure的增强现实:空间锚点