直接从 github clone nvm 到本地, 这里假设大家都使用 ~/git 目录存放 git 项目:
$ cd ~/git $ git clone https://github.com/creationix/nvm.git
配置终端启动时自动执行 source ~/git/nvm/nvm.sh
,
在 ~/.bashrc, ~/.bash_profile, ~/.profile, 或者 ~/.zshrc 文件添加以下命令:
$ source ~/git/nvm/nvm.sh
nvm 默认是从 http://nodejs.org/dist/ 下载的, 国外服务器, 必然很慢,
好在 nvm 以及支持从镜像服务器下载包, 于是我们可以方便地从七牛的 node dist 镜像下载:
$ NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/dist nvm install 0.11.11
于是你就会看到一段非常快速进度条:
######################################################################## 100.0% Now using node v0.11.11
如果你不想每次都输入环境变量 NVM_NODEJS_ORG_MIRROR, 那么我建议你加入到 .bashrc
文件中:
# nvm export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/dist source ~/git/nvm/nvm.sh
nvm 的具体使用我在这里就不多说了,其他人讲的挺多了,官网也很详尽,或者直接nvm回车查看帮助
同理 nvm , npm 默认是从国外的源获取和下载包信息, 不慢才奇怪.
可以通过简单的 ---registry
参数, 使用国内的镜像 https://registry.npm.taobao.org :
$ npm --registry=https://registry.npm.taobao.org install nrm
当然, 每次都要输入那么长串的 registry url 的话, 实在太麻烦, 可以使用 nrm 这个模块来切换镜像:
$ nrm ls // 对比各个镜像的访问速度 $ nrm test // 使用淘宝的镜像 $ nrm use taobao
但是毕竟镜像跟官方的 npm 源还是会有一个同步时间差异, 目前 cnpm 的默认同步时间间隔是 15 分钟.如果你是模块发布者, 或者你想马上同步一个模块, 那么推荐你安装 cnpm cli:
npm 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/dist install microtime
再次要提到 cnpm cli, 它已经默认将 —registry 和 —disturl 都配置好了, 用了就知道了.
好了, 看到这里大家应该对 node 和 npm 已经没有速度慢的问题了.
github 慢, 或者说是它的资源 host 被堵而已, 大家可以通过简单的 hosts 映射解决:
185.31.16.184 github.global.ssl.fastly.net
修改 .bowerrc 文件(如无则新增):
{ "proxy": "http://hx.gy:1080", "https-proxy": "http://hx.gy:1080" }
你懂的能访问就好,不懂多搜就懂