創建Repository
Nexus Repository Manager 3 可以用於多種類型的包管理。 因工作需要,需要配置基於Nexus 3的npm包管理。
Nexus默認賬號: admin/admin123
選擇配置頁面
選擇左側的Repositories
點擊Create repository功能
這樣就會看到Nexus 3支持的repository類型。對於Java開發者maven2的應該就很熟悉了。
仔細觀察會發現,每一種repository都包含三種類型可以創建, group, hosted,proxy。下面分別對每種做說明:
proxy
根據proxy名字,就可以想象的出這種類型的repository是用來坐代理的。比如我們在建Maven私服,需要和中央庫連通,此時就需要用proxy來創建repository。見Nexus模式的maven-central庫。
hosted
這種repository可以簡單的理解爲用於私有的,內部的repository。我們工作中開發的一些工具,組件庫等不方便放到中央庫,但是卻又需要在公司內部共享,就需要創建hosted類型的repository,用於發佈公司內部的組件。見maven-releases, maven-snapshots。
group
最後來說說group類型。其實這種類型是一種虛擬的repository,用於將proxy和hosted類型的repository組合成一個,方便使用者使用。如maven-public, 在裏面既包含了maven-central,同時也包含了maven-releases, maven-snapshots,這樣,不管是網上中央庫的jar包,還是我們自己發佈的jar都可以通過maven-public來獲取到。
結合maven repository配置的經驗,對於npm repository也採用同樣的套路配置。
配置proxy庫
在proxy類型的配置界面,發現裏面的Name、Remote storage是必填的。Name可以隨便填。Remote storage需要填類似maven中央庫的地址,這裏npm的選擇淘寶的私服地址https://registry.npm.taobao.org
配置hosted庫
hosted庫配置比較簡單,只需要填寫name就可以了。
配置Group庫
在group配置中,name同樣是必須的。此外還多了一個members的配置,將左側的npm-hosted,npm-proxy添加到右側的members中,這樣就可以通過group同時訪問npm-hosted,npm-proxy中的資源了。
發佈到npm私服
首先,需要配置權限,將npm Bearer Token Realm啓用。
配置本機的npm登陸
npm login --registry=http://localhost:8888/repository/npm-hosted/
然後輸入用戶名密碼,郵箱,成功後會在.npmrc
文件中生成一條記錄
//localhost:8888/repository/npm-hosted/:_authToken=NpmToken.16b06a38-cae5-32ca-8a5f-2310ef16e156
在確保項目有 package.json 前提下,執行:
npm publish --registry=http://localhost:8888/repository/npm-hosted/
即可在私服中查詢到已發的npm組件