npm 配置 registry 以及使用 nrm


由於眾所周知的原因,我們的內網鏈接互聯網時非常不穩定,速度慢而且經常下載失敗。為了提高下載安裝 npm 包的體驗,很多人都會把 npm 的 registry 配置成國內鏡像,我們一般用的比較多的就是淘寶鏡像。

鏡像是一種存儲的形式。一個磁盤上的東西,在另一個磁盤拷貝一份一摸一樣的副本,這就是鏡像。

淘寶鏡像是 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 ,然后使用 cnpm 命令來下載安裝淘寶鏡像上的 npm 包,而不必修改 npm 的 register。

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/"

 

3.3 改變 npm 的 registry

使用 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/

同樣,如果想使用 nrmregistry 改為淘寶鏡像,如下:

$ npx nrm use taobao  
> Registry has been set to: https://registry.npm.taobao.org/

 

參考: https://github.com/Pana/nrm


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM