阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      nvm 教程

      目前主流的 node 版本管理工具有两种,nvmn

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

      npm : https://www.npmjs.com/package/nvm

      安装

      这里主要介绍 mac 的安装 (linux 可以参照),

      windows 系统的话可以参考 https://github.com/coreybutler/nvm-windows

      推荐的安装方法

      卸载已安装到全局的 node/npm

      如果之前是在官网下载的 node 安装包,运行后会自动安装在全局目录,其中

      • node 命令在 /usr/local/bin/node
      • npm 命令在全局 node_modules 目录中,具体路径为 /usr/local/lib/node_modules/npm

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

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

      安装 nvm

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

      安装完成后请重新打开终端环境,Mac 下推荐使用 oh-my-zsh 代替默认的 bash shell。

      安装完成后,发现使用 nvm install stable 安装 node 速度很慢,大概大家都知道我大天朝的国情。

      接下来介绍如何使用国内镜像快速安装 node:

      把环境变量 NVM_NODEJS_ORG_MIRROR, 那么我建议你加入到 .bash_profile 文件中:

      # nvm
      export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
      

      然后你可以继续非常方便地安装各个版本的 node 了,你可以查看一下你当前已经安装的版本:

      $ nvm ls
               nvm
           v0.8.26
          v0.10.26
          v0.11.11
      ->  v4.3.2
      

      使用 cnpm 加速 npm

      同理 nvm , npm 默认是从国外的源获取和下载包信息,不慢才奇怪。

      可以通过简单的 —registry 参数,使用国内的镜像 https://registry.npm.taobao.org

      $ npm --registry=https://registry.npm.taobao.org install koa
      

      于是屏幕又哗啦哗啦地一大片输出:

      $ npm --registry=https://registry.npm.taobao.org install koa
      npm http GET https://registry.npm.taobao.org/koa
      npm http 200 https://registry.npm.taobao.org/koa
      ...
      npm http 200 https://registry.npm.taobao.org/negotiator
      npm http 200 https://registry.npm.taobao.org/keygrip
      koa[@0](/user/0).5.2 node_modules/koa
      ├── koa-compose[@2](/user/2).2.0
      ├── statuses[@1](/user/1).0.2
      ├── finished[@1](/user/1).1.1
      ├── escape-html[@1](/user/1).0.1
      ├── only[@0](/user/0).0.2
      ├── debug[@0](/user/0).8.0
      ├── fresh[@0](/user/0).2.2
      ├── type-is[@1](/user/1).0.1
      ├── delegates[@0](/user/0).0.3
      ├── mime[@1](/user/1).2.11
      ├── co[@3](/user/3).0.5
      ├── accepts[@1](/user/1).0.1 (negotiator[@0](/user/0).4.2)
      └── cookies[@0](/user/0).4.0 (keygrip[@1](/user/1).0.0)
      

      但是毕竟镜像跟官方的 npm 源还是会有一个同步时间差异,目前 cnpm 的默认同步时间间隔是 15 分钟。

      如果你是模块发布者,或者你想马上同步一个模块,那么推荐你安装 cnpm cli:

      $ npm --registry=https://registry.npm.taobao.org install cnpm -g
      

      通过 cnpm 命令行,你可以快速同步任意模块:

      $ cnpm sync koa connect mocha
      

      我们还有一个 web 页面:

      例如我想马上同步 koa, 直接打开浏览器:https://npm.taobao.org/sync/koa

      或者你是命令行控,通过 open 命令打开:

      $ open https://npm.taobao.org/sync/koa
      

      如果你安装的模块依赖了 C++ 模块,需要编译,肯定会通过 node-gyp 来编译,

      node-gyp 在第一次编译的时候,需要依赖 node 源代码,于是又会去 node dist 下载,

      于是大家又会吐槽,怎么 npm 安装这么慢…

      好吧,于是又要提到 –disturl 参数,通过七牛的镜像来下载:

      $ npm --registry=https://registry.npm.taobao.org --disturl=https://npm.taobao.org/mirrors/node install microtime
      

      再次要提到 cnpm cli, 它已经默认将 –registry 和 –disturl 都配置好了,谁用谁知道

      如果不想使用 cnpm cli,可以

      npm config set registry https://registry.npm.taobao.org --global
      npm config set disturl https://npm.taobao.org/dist --global
      

      不推荐的安装方法

      一开始我是使用 homebrew 来安装的,安装命令如下:

      brew install nvm
      

      安装完后,为了让你可以直接在 shell 使用 nvm 指令,必须在你的 .bash_profile 加入以下这行(习惯把设定放在。bashrc 的人可以把以下的。bash_profile 改成。bashrc)(注:如果没有这个文件,可以 touch 创建)

      source $(brew --prefix nvm)/nvm.sh
      

      或者直接输入以下这行来加入

      $ echo "source $(brew --prefix nvm)/nvm.sh" >> .bash_profile
      

      记得重新 source 你的 .bash_profile 来让设定生效

      $ . ~/.bash_profile
      

      OK,以上就完成了 nvm 的安裝。

      我们来装一下 node v5.12.0

      nvm install 5
      

      安装成功后,使用 nvm use 来切换版本

      nvm use v5.12.0
      

      如果出现错误,请参照:https://github.com/nvm-sh/nvm/issues/855

      参考链接

      目录
      目录