Nexus配置npm私有倉庫全過程
對于前端項目的運行,我們一般要使用npm來管理依賴Node.js的依賴,安裝依賴一般要指定鏡像的下載地址如:
npm config set registry https://registry.npmmirror.com
但這種方式比較依賴網(wǎng)絡(luò),每次都要從遠(yuǎn)程拉取,對于企業(yè)內(nèi)網(wǎng)開發(fā),這種直連公共倉庫方式往往不適用,本文介紹了使用Nexus配置私有npm倉庫來拉取依賴過程。
私有npm倉庫解決的問題
- 私有存儲空間:安全存儲內(nèi)部npm包
- 代理緩存:緩存后的依賴可離線使用,減少重復(fù)下載
- 統(tǒng)一管理:集中控制所有依賴來源,可給多個項目使用
一、 Nexus介紹
Nexus簡介
Nexus(由Sonatype開發(fā))是一款強(qiáng)大的私有倉庫管理平臺,用于統(tǒng)一管理二進(jìn)制構(gòu)件(如軟件包、依賴庫、容器鏡像等),支持多種技術(shù)棧(如Maven、npm、Docker、NuGet等)。
它通過本地化存儲和代理遠(yuǎn)程倉庫,顯著提升團(tuán)隊開發(fā)效率與安全性。
Nexus核心概念
Nexus的核心是倉庫(Repository),分為三類:
- Hosted(本地倉庫):用于存儲團(tuán)隊私有構(gòu)件(如自研npm包、內(nèi)部Docker鏡像)。
- Proxy(代理倉庫):代理并緩存遠(yuǎn)程公共倉庫(如npmjs.org、Docker Hub),首次下載后緩存到本地,后續(xù)請求直接讀取緩存。示例:配置npm-proxy代理淘寶鏡像,加速依賴下載。
- Group(倉庫組):聚合多個Hosted和Proxy倉庫,提供統(tǒng)一訪問入口。示例:npm-public組合npm-proxy(開源依賴)和npm-hosted(私有包),用戶只需配置一個地址
二、配置過程
1. 前置條件
- Nexus服務(wù)已部署好
- 開放Nexus服務(wù)器對
registry.npmmirror.com:443的出站訪問
2.本地倉庫創(chuàng)建(hosted類型)
創(chuàng)建hosted類型的npm倉庫,找到設(shè)置頁面

選擇npm(hosted)類型,hosted表示本機(jī)私有

填寫新建的倉庫信息

這里blob store(文件存儲配置)選擇了默認(rèn)的,deployment policy選擇Allow redeploy,Allow Redeploy(允許重新部署)允許用戶多次上傳相同版本的構(gòu)件,新上傳的構(gòu)件會覆蓋已有的構(gòu)件。
3.代理倉庫創(chuàng)建(proxy類型)
創(chuàng)建一個proxy類型的倉庫,當(dāng)依賴下載時,請求到達(dá) Nexus -> 檢查本地緩存 -> 若有緩存則直接返回 → 若無則從配置的鏡像倉庫下載并緩存。

這里鏡像拉取地址選擇了:https://registry.npmmirror.com 淘寶鏡像源
4.倉庫組創(chuàng)建(group類型)
創(chuàng)建倉庫時選擇npm-gruop類型,并把剛才常見的成員將npm-local和npm-proxy加入組

回到瀏覽頁面,可以看到剛剛創(chuàng)建的3個倉庫

點擊拷貝url我們就能拿到需要配置的url倉庫地址:
http://xxx.xxx.xxx.xxx:8081/repository/npm-public/
三、驗證測試
在拉取依賴時,配置替換為我們Nexus鏡像倉庫地址:
npm config set registry http://xxx.xxx.xxx.xxx:8081/repository/npm-public/
四、常見問題
發(fā)布時遇到401未授權(quán)錯誤

此時需要開啟npm的Bearer Token認(rèn)證機(jī)制,配置如下

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java使用Flexmark-Java輕松實現(xiàn)Markdown全場景轉(zhuǎn)換
Flexmark-Java是一款高性能的Markdown解析器,無論是將Markdown轉(zhuǎn)換為HTML、PDF還是DOCX,這款工具都能提供高速處理、高度靈活性以及詳細(xì)的AST構(gòu)建能力,幫助開發(fā)者輕松應(yīng)對各類文檔轉(zhuǎn)換需求,本文給大家介紹了如何用Flexmark-Java輕松實現(xiàn)Markdown全場景轉(zhuǎn)換2025-11-11
springmvc無法訪問/WEB-INF/views下的jsp的解決方法
本篇文章主要介紹了springmvc無法訪問/WEB-INF/views下的jsp的解決方法,非常具有實用價值,需要的朋友可以參考下2017-10-10
springcloud?如何解決微服務(wù)之間token傳遞問題
這篇文章主要介紹了springcloud?如何解決微服務(wù)之間token傳遞問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
Javaweb使用thymeleaf局部刷新結(jié)合Layui插件實現(xiàn)Html分頁
本文主要介紹了Javaweb使用thymeleaf局部刷新結(jié)合Layui插件實現(xiàn)Html分頁,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10
Java子類調(diào)用父類的私有屬性的實現(xiàn)示例
在Java中,我們都知道子類不能直接訪問或修改父類的私有屬性,本文主要介紹了Java子類調(diào)用父類的私有屬性的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下2024-05-05

