文档章节

node版本管理工具nvm-Mac下安装及使用

S
 Sailor20
发布于 2016/12/09 13:54
字数 1574
阅读 19
收藏 0
点赞 0
评论 0

前言

目前主流的node版本管理工具有两种,nvm和n。两者差异挺大的,具体分析可以参考一下淘宝FED团队的一篇文章:

管理 node 版本,选择 nvm 还是 n?

总的来说,nvm有点类似于 Python 的 virtualenv 或者 Ruby 的 rvm,每个node版本的模块都会被安装在各自版本的沙箱里面(因此切换版本后模块需重新安装),因此考虑到需要时常对node版本进行切换测试兼容性和一些模块对node版本的限制,我选择了使用nvm作为管理工具,下面就来说说nvm的安装和使用过程。

安装

一开始,我像往常一样在 oh-my-zsh 中选择了使用 Homebrew 来安装nvm,完成后却发现它被全局安装了,这就造成了后面使用上的一点问题,具体问题可参考 Github 上的一个 issue 。

然后我就又用 Homebrew 把它给卸掉了,还是决定找找看它的文档, Github 上找到 这里 。

清楚看到文档中 Installation 那一小节有一句 Homebrew installation is not supported. ,由此可见,没事儿还是要多看看文档。

正式进入安装过程:

我选择了使用 curl 来安装:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash

完成后nvm就被安装在了 ~/.nvm 下啦,接下来就需要配一下环境变量了,如果你也使用了 zsh 的话,就需要在 ~/.bash_profile 这个配置文件中配置,否则就找找看 ~/.zshrc 或者 ~/.profile 吧。

打开 ~/.bash_profile ,在最后一行加上:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

这一步的作用是每次新打开一个bash,nvm都会被自动添加到环境变量中了。

完成后输入 source ~/.bash_profile 重新启动一下配置。

输入 nvm 可以看到如下信息:

➜  ~  nvm

Node Version Manager

Note: <version> refers to any version-like string nvm understands. This includes:
  - full or partial version numbers, starting with an optional "v" (0.10, v0.1.2, v1)
  - default (built-in) aliases: node, stable, unstable, iojs, system
  - custom aliases you define with `nvm alias foo`

Usage:
  nvm help                                  Show this message
  nvm --version                             Print out the latest released version of nvm
  nvm install [-s] <version>                Download and install a <version>, [-s] from source. Uses .nvmrc if available
    --reinstall-packages-from=<version>     When installing, reinstall packages installed in <node|iojs|node version number>
  nvm uninstall <version>                   Uninstall a version
  nvm use [--silent] <version>              Modify PATH to use <version>. Uses .nvmrc if available
  nvm exec [--silent] <version> [<command>] Run <command> on <version>. Uses .nvmrc if available
  nvm run [--silent] <version> [<args>]     Run `node` on <version> with <args> as arguments. Uses .nvmrc if available
  nvm current                               Display currently activated version
  nvm ls                                    List installed versions
  nvm ls <version>                          List versions matching a given description
  nvm ls-remote                             List remote versions available for install
  nvm version <version>                     Resolve the given description to a single local version
  nvm version-remote <version>              Resolve the given description to a single remote version
  nvm deactivate                            Undo effects of `nvm` on current shell
  nvm alias [<pattern>]                     Show all aliases beginning with <pattern>
  nvm alias <name> <version>                Set an alias named <name> pointing to <version>
  nvm unalias <name>                        Deletes the alias named <name>
  nvm reinstall-packages <version>          Reinstall global `npm` packages contained in <version> to current version
  nvm unload                                Unload `nvm` from shell
  nvm which [<version>]                     Display path to installed node version. Uses .nvmrc if available

Example:
  nvm install v0.10.32                  Install a specific version number
  nvm use 0.10                          Use the latest available 0.10.x release
  nvm run 0.10.32 app.js                Run app.js using node v0.10.32
  nvm exec 0.10.32 node app.js          Run `node app.js` with the PATH pointing to node v0.10.32
  nvm alias default 0.10.32             Set default node version on a shell

Note:
  to remove, delete, or uninstall nvm - just remove the `$NVM_DIR` folder (usually `~/.nvm`)

至此,nvm的安装就算是告一段落了,下面我们就来看一下如何使用它来对node版本进行切换使用。

使用

其实,上述最后一步打印出的信息已经可以清楚看到nvm的全部命令。

各项命令的详细用法及含义可参考上文提到的 nvm文档 。

接下来就轮到安装我们的主角node大哥了。安装前先设置镜像(我用的淘宝镜像,如喜欢用其它镜像只需改下方的url),以下代码添加到.bash_profile

export NVM_NODEJS_ORG_MIRROR="https://npm.taobao.org/mirrors/node/"
source "$NVM_DIR/nvm.sh" 

首先我们可以使用 nvm ls-remote 看一下node有哪些版本可以安装:

➜  ~  nvm ls-remote
            v0.1.14
            v0.1.15
            v0.1.16
            ...

Note:由于在写文章的时候网络有问题,无法展示所有结果出来,上面代码示意一下,正确情况下会显示非常多版本出来,大家都知道node更新速度非常非常快。

我常用的node版本是4.1.0,因此首先安装这个版本:

$ nvm install v4.1.0
######################################################################## 100.0%

Now using node v4.1.0

同时安装一下最新版来测试nvm的版本管理功能:

$ nvm install v5.5.0
######################################################################## 100.0%

Now using node v5.5.0

使用nvm轻松切换node版本

在介绍使用方法前,简单说明一下nvm的工作原理:

按照我上述安装方法的话,nvm会将各个版本的node安装在 ~/.nvm/versions/node 目录下,我们可以打开这个目录看看有些什么东西:

➜  ~  ls -a ~/.nvm/versions/node
.      ..     v4.1.0 v5.5.0

事实上 v4.1.0 和 v5.5.0 这两个目录分别存放node的binary档,nvm会在 $PATH前面安插指定版本的目录,透过这种方式在使用node命令时就会用指定版本的node来运行了。

可以确认实际的 $PATH 看看:

➜  ~  echo $PATH
/Users/***/.nvm/versions/node/v5.5.0/bin:...

由于刚刚我们通过nvm安装node,会自动把最后安装的版本设为当前使用的版本,因此上述路径结尾会是 .../v5.5.0/bin (还可通过 nvm ls 命令查看当前已安装的所有node版本)。

接下来我们可以使用 nvm use <version> 切换版本:

➜  ~  nvm use v4.1.0
Now using node v4.1.0 (npm v2.14.3)
➜  ~  node -v
v4.1.0
➜  ~  nvm use v5.5.0
Now using node v5.5.0 (npm v3.3.12)
➜  ~  node -v
v5.5.0

轻轻松松完成切换!

不过问题来了,这时如果你新打开一个bash,输入 nvm current 会发现显示为 null ,这是因为使用 nvm use 命令只会在当前bash里生效,重新打开一个bash你会发现 $PATH 的值已经不包含刚才的node目录了,要解决这个问题也很简单,使用 nvm alias default <version> 命令来指定一个默认的node版本就ok了,这里我使用了v4.1.0 作为默认版本:

➜  ~  nvm alias default v4.1.0
default -> v4.1.0

此时再打开一个bash输入 nvm current 就会显示为 v4.1.0 了。

小结

以上为我在安装nvm的过程中通过各种资料总结出来的一套简单教程,欢迎大家分享交流!

© 著作权归作者所有

共有 人打赏支持
S
粉丝 0
博文 40
码字总数 22665
作品 0
浦东
程序员
新年新起点:从零配置 Mac 前端环境速查

如果新年你准备换台 Mac、重装 Mac 系统或者升级老 Mac 硬盘,这篇文章或许能成为一份不错的 Checklist 哦。 编写这篇指南的契机是笔者的 Mac 刚刚换了 SSD,又需要重装系统了……上一次换工...

⋅ 01/01 ⋅ 1

ubuntu下nvm,node以及npm的安装与使用

nvm是一个非常不错的node版本管理器,类似于ruby的rvm。 其github地址为https://github.com/creationix/nvm。 此处介绍一下如何在ubuntu上安装使用nvm。 首先安装必要的包。...

豆花饭烧土豆 ⋅ 2016/12/03 ⋅ 0

nodejs的一些工具

node js里面的一些东西 nvm 是 nodejs version manager 的简称,即:nodejs版本管理 npm 是 nodejs package manager 的简称,即:nodejs模块管理 npm比较好用,基本上都会 nvm在linux,mac上比...

gotham ⋅ 2014/10/27 ⋅ 0

ubuntu下nvm,node以及npm的安装与使用

一:安装nvm 首先下载nvm,这里我们需要使用git,如果没有安装git,可以使用 sudo apt-get install git 来安装 git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm && g...

豆花饭烧土豆 ⋅ 2016/07/14 ⋅ 0

iKcamp团队制作|基于Koa2搭建Node.js实战(含视频)☞ 环境准备

安装搭建项目的开发环境 🇨🇳 iKcamp 制作团队 原创作者:大哼、阿干、三三、小虎、胖子、小哈、DDU、可木、晃晃 文案校对:李益、大力萌、Au、DDU、小溪里、小哈 风采主播:可木、阿干、...

⋅ 2017/12/18 ⋅ 0

在Linux(ubuntu server)上面安装NodeJS的正确方法

为了保持一致,这里也列举三个方法 第一个方法:通过官网下载安装 https://nodejs.org/en/download/ 这种方式的问题是我们需要自己去找网页,找到链接,然后下载 第二个方法:使用apt工具进行...

豆花饭烧土豆 ⋅ 2016/06/03 ⋅ 0

nvm,nodejs和npm安装使用

快速搭建 Node.js 开发环境 如果你想长期做 node 开发, 或者想快速更新 node 版本, 或者想快速切换 node 版本, 那么在非 Windows(如 osx, linux) 环境下, 请使用 nvm 来安装你的 node 开发环...

Sailor20 ⋅ 2016/10/22 ⋅ 0

Mac下通过n管理多个版本的node.js

Node.js 可谓风光无限,但是版本管理很是头大,不同的项目用不同的Node版本,往往Node版本间不互相兼容,所以经常需要在不同的Node版本中切换。 Mac下你同样可以通过nvm来管理Node版本,今天...

米阳MeYoung ⋅ 06/09 ⋅ 0

React Native iOS环境搭建

感觉React Native会越来越多的公司开始研究、使用。所以周六也抽空搭建了iOS的开发环境,以便以后利用空闲的时间能够学习一下。 废话不多说了,下面简单的列出步骤吧。 1. 安装Homebrew Home...

mahb520 ⋅ 2015/11/30 ⋅ 5

win10下使用nodejs安装

win10下使用nodejs安装及webstorm创建express项目的指导 windows下nvm的 熟悉linux下开发的朋友应该都知道nvm是一款node版本管理的工具,使用nvm我们可以安装任意多的nodejs版本,以及决定自...

u010570551 ⋅ 2017/05/21 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

用ZBLOG2.3博客写读书笔记网站能创造今日头条的辉煌吗?

最近两年,著名的自媒体网站今日头条可以说是火得一塌糊涂,虽然从目前来看也遇到了一点瓶颈,毕竟发展到了一定的规模,继续增长就更加难了,但如今的今日头条规模和流量已经非常大了。 我们...

原创小博客 ⋅ 今天 ⋅ 0

MyBatis四大核心概念

本文讲解 MyBatis 四大核心概念(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。 MyBatis 作为互联网数据库映射工具界的“上古神器”,训有四大“神兽”,谓之:Sql...

waylau ⋅ 今天 ⋅ 0

以太坊java开发包web3j简介

web3j(org.web3j)是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。 web3j的功能相当完整...

汇智网教程 ⋅ 今天 ⋅ 0

2个线程交替打印100以内的数字

重点提示: 线程的本质上只是一个壳子,真正的逻辑其实在“竞态条件”中。 举个例子,比如本题中的打印,那么在竞态条件中,我只需要一个方法即可; 假如我的需求是2个线程,一个+1,一个-1,...

Germmy ⋅ 今天 ⋅ 0

Springboot2 之 Spring Data Redis 实现消息队列——发布/订阅模式

一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式,这里利用redis消息“发布/订阅”来简单实现订阅者模式。 实现之前先过过 redis 发布订阅的一些基础概念和操...

Simonton ⋅ 今天 ⋅ 0

error:Could not find gradle

一.更新Android Studio后打开Project,报如下错误: Error: Could not find com.android.tools.build:gradle:2.2.1. Searched in the following locations: file:/D:/software/android/andro......

Yao--靠自己 ⋅ 昨天 ⋅ 0

Spring boot 项目打包及引入本地jar包

Spring Boot 项目打包以及引入本地Jar包 [TOC] 上篇文章提到 Maven 项目添加本地jar包的三种方式 ,本篇文章记录下在实际项目中的应用。 spring boot 打包方式 我们知道,传统应用可以将程序...

Os_yxguang ⋅ 昨天 ⋅ 0

常见数据结构(二)-树(二叉树,红黑树,B树)

本文介绍数据结构中几种常见的树:二分查找树,2-3树,红黑树,B树 写在前面 本文所有图片均截图自coursera上普林斯顿的课程《Algorithms, Part I》中的Slides 相关命题的证明可参考《算法(第...

浮躁的码农 ⋅ 昨天 ⋅ 0

android -------- 混淆打包报错 (warning - InnerClass ...)

最近做Android混淆打包遇到一些问题,Android Sdutio 3.1 版本打包的 错误如下: Android studio warning - InnerClass annotations are missing corresponding EnclosingMember annotation......

切切歆语 ⋅ 昨天 ⋅ 0

eclipse酷炫大法之设置主题、皮肤

eclipse酷炫大法 目前两款不错的eclipse 1.系统设置 Window->Preferences->General->Appearance 2.Eclipse Marketplace下载【推荐】 Help->Eclipse Marketplace->搜索‘theme’进行安装 比如......

anlve ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部