鏡像是一種存儲的形式。一個磁盤上的東西,在另一個磁盤拷貝一份一摸一樣的副本,這就是鏡像。
淘寶鏡像是 npm
官方服務器的同步版本,所以我們從淘寶鏡像獲取的 npm
包等同於從官方獲取 npm
包。這樣做的好處是淘寶鏡像也在內網,所以穩定且速度快。淘寶鏡像地址: https://npm.taobao.org/
1. 配置 registry 為淘寶鏡像
首先查看配置信息:
$ npm config ls
注意輸出信息中,有一條 metrics-registry
,默認是指向 npm
官方地址:
> metrics-registry = "https://registry.npmjs.org/"
我們可以使用命令把他改成淘寶鏡像地址
$ npm config set registry https://registry.npm.taobao.org/
修改完成再輸入命令查看配置文件,會發現 metrics-registry
已經發生了修改。
$ npm config ls > metrics-registry = "https://registry.npm.taobao.org/"
這樣,我們就修改完成了,之后使用 npm
命令下載包,將會從淘寶鏡像開始下載,穩定且速度快。
2. CNPM
cnpm
是一個維護私有 npm
的解決方案,淘寶就是使用了 cnpm
搭建了一個屬於內網的 npm
鏡像。
cnpm
的命令基本和 npm
差不多,所有使用起來很方便。
2.1 安裝 cnpm
建議全局安裝
$ npm install cnpm -g --registry=https://r.npm.taobao.org
2.2 使用 cnpm
cnpm
命令和 npm
差不多,就像 npm
一樣使用。
$ cnpm install webpack
或者
$ npx cnpm install webpack
3. 使用 nrm
管理 registry (推薦)
nrm
是 NPM registry manager(NPM注冊管理器)的縮寫,可以更簡單、快捷的管理 registry。
nrm
本身並不是裝包工具,nrm
是維護了幾個常用的 npm
的 registry 地址,方便我們簡單、快捷地切換。
3.1 安裝 nrm
nrm
建議全局安裝
$ npm install nrm -g
3.2 展示 nrm
維護的所有 registry
安裝完成后,輸入查看命令
$ nrm ls
如果直接運行 nrm
命令提示報錯的話,可以嘗試下面的命令,如果仍舊無法解決,可以查看報錯信息來找到解決方案
$ npx nrm ls
查看數據結果,可以看到 nrm
幫我們維護了 npm
yarn
cnpm
taobao
nj
npmMirror
edunpm
這個7個環境,前面的 *
(星號) 表示當前正在使用的環境。
> npm -------- https://registry.npmjs.org/ yarn ------- https://registry.yarnpkg.com/ cnpm ------- http://r.cnpmjs.org/ * taobao ----- https://registry.npm.taobao.org/ nj --------- https://registry.nodejitsu.com/ npmMirror -- https://skimdb.npmjs.com/registry/ edunpm ----- http://registry.enpmjs.org/
如果輸入 npm config ls
命令查看 metrics-registry
就會得到相同的結果。
$ npm config ls > metrics-registry = "https://registry.npm.taobao.org/"
使用 use
命令,如下:
$ npx nrm use [name]
[name] 必須得是,剛才 nrm
維護的 registry ,也就是 nrm ls
命令展示的那7個 registry 其中之一。
例如將 npm
的 registry 再改回官方地址:
$ npx nrm use npm
> Registry has been set to: https://registry.npmjs.org/
可以看到輸入命令之后,會提示 “Registry 已經被注冊為 ***” 的提示語。
然后查看 npm
的配置信息:
$ npm config ls
並且查看 nrm
的 registry 列表,發現星號也移動到了 npm
這一行:
$ npx nrm ls > * npm -------- https://registry.npmjs.org/ yarn ------- https://registry.yarnpkg.com/ cnpm ------- http://r.cnpmjs.org/ taobao ----- https://registry.npm.taobao.org/ nj --------- https://registry.nodejitsu.com/ npmMirror -- https://skimdb.npmjs.com/registry/ edunpm ----- http://registry.enpmjs.org/
同樣,如果想使用 nrm
把 registry 改為淘寶鏡像,如下:
$ npx nrm use taobao
> Registry has been set to: https://registry.npm.taobao.org/