一 Nexus的安裝
docker提供了Nexus鏡像,可以通過鏡像啟動docker,也可以去github下載Nexus自行搭建。
這里使用的docker快速搭建服務
1 執行命令拉取nexus (可能需要FQ)
docker pull liumiaocn/nexus
2 啟動nexus
docker run -d -p 8081:8081 -p 8082:8082 -p 8083:8083 --name nexus liumiaocn/nexus
3 輸入url 登錄
localhost:8081
默認賬號:admin/admin23
使用方法和發布流程和上面一致
二 npm包代理使用
1 創建內存空間
點擊create blob store

2 創建私有庫、代理庫、組
點擊create repsitory
npm相關可選類型有三個
hosted(私有倉庫):用於發布個人開發的npm組件
proxy(代理倉庫):可以代理npm和淘寶鏡像
group(組合倉庫):對外公開的倉庫,集合了hosted和proxy,用戶代理配置此地址即可。
正常使用情況下三個倉庫都需要創建,除非單獨使用某一功能。

hosted倉庫創建
內存空間選擇創建的內存空間,默認使用default空間,盡量使用npm單獨空間與maven分離
hosted要選擇allow redeploy,否則npm包不能推送到私有倉庫
proxy倉庫創建
proxy填npm的鏡像地址,常用的有http://registry.npmjs.org、https://registry.npmmirror.com(推薦)、https://registry.npm.taobao.org等。通過proxy倉庫下載的包會緩存起來,再使用會去緩存中下載。
創建group倉庫
使用前面創建的store,group里面選中上面創建的hosted倉庫和proxy倉庫。
修改配置
選中npm Bearer Token Realm
3 使用倉庫
查看並復制私有倉庫地址
在本地設置npm鏡像地址
npm config set registry=group倉庫地址
或者直接設置代理倉庫
npm config set registry=proxy倉庫地址
查看鏡像地址
npm config get registry
注:如果設置了鏡像地址,查看發現與設置的不一致,檢查項目中根目錄下.npmrc文件是否設置了registry。
4 查看proxy倉庫緩存
點擊browse,在右側列表點擊proxy所在的group或者直接點擊proxy
如果緩存成功會有記錄,再次安裝同樣npm包的時候優先走proxy倉庫中的緩存,如果緩存不存在會去配置的鏡像地址下載。
三 私有倉庫發布
私有倉庫npm包的發布和開源npm的流程一致
1 准備要發布的包
name注意不要發生沖突,repository設置為私有倉庫地址。
npm包實際是一個存檔文件,即一個目錄直接打包為.zip或tar.gz格式的文件,安裝后解壓還原為目錄。完全符合CommonJS規范的包目錄應該包含如下這些文件。
package.json : 包描述文件。
bin: 用於存放可執行二進制文件的目錄。
lib:用於存放javascript代碼的目錄。
doc:用於存放文檔的目錄。
test: 用於存放單元測試用例的代碼。
2 發布包
登錄之前確認npm目前鏡像地址是否是私有化地址,如果不是,用npm config set registry= 設置鏡像地址
npm login 輸入Nexus的用戶名和密碼,郵箱輸入自己郵箱即可
npm publish發布倉庫
發布成功之后在Nexus查看包,在search=>npm 中。如果發布失敗,可嘗試將npm鏡像改成hosted倉庫
npm config set registry=hoseted倉庫地址
設置之后重新執行npm login 登錄。
發布成功之后即可在工程中安裝
npm install 包的名字