专栏首页前端那些事nvm管理不同版本的node和npm

nvm管理不同版本的node和npm

写在前面

nvm(nodejs version manager)是nodejs的管理工具,如果你需要快速更新node版本,并且不覆盖之前的版本;或者想要在不同的node版本之间进行切换;使用nvm来安装我们的node开发环境是绝佳的选择!

之前使用vue-cli初始化项目,发现自己卡在了项目描述,重复了好几次,无论怎么回车或者尝试其他去解决也无济于事,终于找到了原因所在:

原因其实是我的node版本过高,需要降低node版本。

我们可以通过nvm管理不同版本的node和npm,

nvm下载安装

下载使用之前,避免不必要的麻烦,先将之前的node版本删除(同时清除相应的多余的环境变量也是一个好习惯);

 现在nvm-windows的版本是1.1.6,最新稳定的版本是1.1.5;

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

如果不需要关注其他的话,下载nvm-setup.zip即可;

1、下载解压后nvm-setup.exe点击:

第一个路径是你的nvm安装的路径,

第二个路径是node快捷启动的路径(使用nvm下载后的node默认在nvm文件中,这个路径是创建的一个快捷方式的路径)

然后通过 nvm -v 查看是否安装成功

2、接下来打开setting.txt文件,添加如下:(root和path路径是安装的时候选择好的,setting.txt已经同步到,没有需要的话不用修改)

arch: 64  
proxy: none
node_mirror: http://npm.taobao.org/mirrors/node/ 
npm_mirror: https://npm.taobao.org/mirrors/npm/

3、然后我们就需要添加环境变量了:(其实只需要将root和path的路径添加到环境变量中即可)

4、那么我们来下载一个版本的node,并使用它吧

nvm install 6.2.0     *选择安装node 版本
nvm list                  *列出已安装版本
nvm use 6.2.0        *切换使用的node版本    

我们下载了node 6.2.0版本,通过nvm use 版本号 来使用它,通过这样我们可以切换node版本。

当我们install之后,发现第二个路径下没有添加nodejs文件,但是当我们使用nvm use命令后,发现该文件下多了一个快捷方式的文件;

使用nvm

几个常用的命令

nvm install 6.2.0        *选择安装node 版本
nvm use 6.2.0            *切换使用的node版本  
nvm list       // 查看已安装的 node 版本

    7.2.0
   *6.2.0(Currently using 64-bit executable)
    4.4.4 

nvm uninstall 6.2.0 #卸载对应的版本

nvm与n的区别

node 版本管理工具还有一个是 TJ 大神的 n 命令,n命令作为node的模块而存在,而nvm是独立于npm/node之外的一个shell脚本,因此n命令相比nvm更加局限

由于 npm 安装的模块路径均为 /usr/local/lib/node_modules ,当使用 n 切换不同的 node 版本时,实际上会共用全局的 node/npm 目录。 因此不能很好的满足『按不同 node 版本使用不同全局 node 模块』的需求。

写在后面

貌似之前nvm只有mac版本,现在window操作系统的小伙伴们,我们的福利来啦,window版本的nvm在github已经开源,让我们尽快使用nvm来管理我们的node版本吧!!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 递归函数-汉诺塔经典递归

    前言 最近在读《JavaScript语言精粹》,对递归函数有了进一步的认识,希望总结下来: 递归是一种强大的编程技术,他把一个问题分解为一组相似的子问题,每一问...

    okaychen
  • Express4.x API (四):Router (译)

    Express4.x API 译文 系列文章 已经完成了Express4.x API中的Requst和Response对象的文档翻译。简单的总结,request...

    okaychen
  • 调用wx.request接口时需要注意的几个问题

    写在前面 之前写了一篇《微信小程序实现各种特效实例》,上次的小程序的项目我负责大部分前端后台接口的对接,然后学长帮我改了一些问题。总的来说,收获了不少吧! 现在...

    okaychen
  • 【Node.js】使用 nvm 管理不同版本的 node 与 npm

    在我们的日常开发中经常会遇到这种情况:手上有好几个项目,每个项目的需求不同,进而不同项目必须依赖不同版的 NodeJS 运行环境。如果没有一个合适的工具,这个问...

    魏晓蕾
  • hihocoder-平衡树·SBT

     http://hihocoder.com/problemset/problem/1337 #1337 : 平衡树·SBT 时间限制:10000ms 单点时限:...

    Gxjun
  • 你真的懂么:Android中删除Preference

    Android的设置界面实现比较简单,有时甚至只需要使用一个简单的xml文件即可.声明简单,但是如何从PreferenceScreen或者PreferenceC...

    技术小黑屋
  • iOS开发中的这些权限,你搞懂了吗?

    Jacklin
  • SaaS-系统用户权限设计(组织机构管理)

    在 /src/api/base/ 创建departments.js作为组织机构管理的API公共接口方法

    cwl_java
  • iOS开发中的这些权限,你搞懂了吗?

    ![Uploading 144446-b8aca7ba38c5f8c0_695906.png . . .]获取相册权限

    Jacklin999
  • 编码篇 - iOS各种权限状态的获取及注意事项

    关于系统权限的获取,相信大家都不陌生,可是其中蕴含的知识确实不少。 怎样向用户索取权限是非常重要的。例如LBS类的应用,如果在索取权限时遭到用户的拒绝,那么该...

    進无尽

扫码关注云+社区

领取腾讯云代金券