提升npm下载速度之npm换源

说到换源先说下什么是换源,为什么要换源。

一般对于一个软件有很多不同资源,不同的资源下载的速度有很大差异,就像在迅雷上下载资源一样,有的资源下载速度可以达到10M/s,而有的则只有10K/s,并且到后面根本下载不了。

软件也一样,有很多不同的资源,下载的速度自然有差异。npm相当于一个软件商店,只是上面的软件都是免费。上面的软件当然有不同的资源,下载速度当然有很大差异。npm默认下载地址是国外的,下载速度当然慢。所以npm换源是将npm的资源换成国内的资源地址。

看到这里可能有人说这还不简单,直接全局安装个cnpm模块,

npm install -g cnpm

所有包都用cnpm来安装一路畅通,没错cnpm模块很好用,安装也很快,有很长一段时间我也是用的cnpm,直到有一次安装出现了问题。在绝大多数情况下cnpm是没有问题的,但是以下情况有问题:

1、有些npm包中集成了npm install ,最后都会调用npm install ,这种情况下,cnpm完全无效。

2、有些npm API 相关的package,都会读取.npmrc中的registry,或者使用默认的registry去查询npm package相关信息。

故解决这些问题的根本方法是给npm换源。

国内有一些优秀的npm镜像,比如淘宝镜像,cnpm等。

淘宝npm镜像

搜索地址:http://npm.taobao.org/

cnpmjs镜像

搜索地址:http://cnpmjs.org/

我们只需要将资源地址改为国内镜像就可以。如下:

1、通过 config 配置指向国内镜像源

npm config set registry http://registry.cnpmjs.org      // 配置源的指向
npm install express         // 安装express

2、通过 npm 命令指定下载源

npm --registry http://registry.cnpmjs.org install express   // 配置源并安装express模块

3、在配置文件 .npmrc 文件写入源地址

打开电脑的个人用户目录下的.npmrc文件,没有就新建。
registry=http://registry.cnpmjs.org     // 写入这段

前两种方法是临时的改变源,第三种是永久改变源。

对于换源推荐一个npm模块nrm。nrm是一个npm源管理工具,其切换源非常方便。

npm  install   -g   nrm     // 全局安装nrm模块

nrm ls                      // 显示所有可用的源

nrm use taobao              // 切换到淘宝源:

特殊:

有些模块即使换了源还是安装非常慢以至于安装失败,比如:node-sass。

在安装node-sass过程中,是要在 GitHub 上下载编译好的 node-sass 二进制包,本来github访问速度就慢,request访问速度更慢。

故需要特殊配置:

在.npmrc文件中加入:

sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
// 将node-sass包资源地址指向淘宝镜像

在npm安装有些包时会遇到一些问题,你只需google一下,找到相关配置写到.npmrc文件中。

参考文章:

是时候放弃用 cnpm 命令了
安装 nrm 自由切换 npm 源 国内镜像提升下载速度

你可能感兴趣的:(提升npm下载速度之npm换源)