nvm全称Node Version Manager是 Nodejs 版本管理器,它让我们能方便的对 Nodejs 的版 本进行切换。 nvm 的官方版本只支持 Linux 和 Mac。 Windows 用户,可以用 nvm-windows
nrm全程称Npm Registry Manager 快速切换npm源
推荐的安装方法
一、卸载已安装到全局的 node/npm
如果之前是在官网下载的 node 安装包,运行后会自动安装在全局目录,其中
node 命令在 /usr/local/bin/node ,npm 命令在全局 node_modules 目录中,具体路径为 /usr/local/lib/node_modules/npm
安装 nvm 之后最好先删除下已安装的 node 和全局 node 模块:
1 npm ls -g --depth=0 #查看已经安装在全局的模块,以便删除这些全局模块后再按照不同的 node 版本重新进行全局安装
2
3 sudo rm -rf /usr/local/lib/node_modules #删除全局 node_modules 目录
4 sudo rm /usr/local/bin/node #删除 node
5 cd /usr/local/bin && ls -l | grep "../lib/node_modules/" | awk '{print $9}'| xargs rm #删除全局 node 模块注册的软链
二、安装 nvm
三、使用 cnpm 加速 npm
同理 nvm , npm 默认是从国外的源获取和下载包信息, 不慢才奇怪. 可以通过简单的 ---registry 参数, 使用国内的镜像 https://registry.npm.taobao.org
$ npm --registry=https://registry.npm.taobao.org install koa
于是屏幕又哗啦哗啦地一大片输出:
1 $ npm --registry=https://registry.npm.taobao.org install koa
2 npm http GET https://registry.npm.taobao.org/koa
3 npm http 200 https://registry.npm.taobao.org/koa
4 ...
5 npm http 200 https://registry.npm.taobao.org/negotiator
6 npm http 200 https://registry.npm.taobao.org/keygrip
7 koa[@0](/user/0).5.2 node_modules/koa
8 ├── koa-compose[@2](/user/2).2.0
9 ├── statuses[@1](/user/1).0.2
10 ├── finished[@1](/user/1).1.1
11 ├── escape-html[@1](/user/1).0.1
12 ├── only[@0](/user/0).0.2
13 ├── debug[@0](/user/0).8.0
14 ├── fresh[@0](/user/0).2.2
15 ├── type-is[@1](/user/1).0.1
16 ├── delegates[@0](/user/0).0.3
17 ├── mime[@1](/user/1).2.11
18 ├── co[@3](/user/3).0.5
19 ├── accepts[@1](/user/1).0.1 (negotiator[@0](/user/0).4.2)
20 └── 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
呃, 我就是不想安装 cnpm cli 怎么办? 哈哈, 早就想到你会这么懒了, 于是我们还有一个 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
nvm常用命令
- nvm install <version> ## 安装指定版本,可模糊安装,如:安装v4.4.0,既可nvm install v4.4.0,又可nvm install 4.4
- nvm uninstall <version> ## 删除已安装的指定版本,语法与install类似
- nvm use <version> ## 切换使用指定的版本node
- nvm ls ## 列出所有安装的版本
- nvm ls-remote ## 列出所以远程服务器的版本(官方node version list)
- nvm current ## 显示当前的版本
- nvm alias <name> <version> ## 给不同的版本号添加别名
- nvm unalias <name> ## 删除已定义的别名
- nvm reinstall-packages <version> ## 在当前版本node环境下,重新全局安装指定版本号的npm包