說到換源先說下什么是換源,為什么要換源。
一般對于一個軟件有很多不同資源,不同的資源下載的速度有很大差異,就像在迅雷上下載資源一樣,有的資源下載速度可以達到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鏡像
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文件中。
參考文章: