NPM配置私服構(gòu)建內(nèi)網(wǎng)中央倉(cāng)庫(kù)過(guò)程詳解
寫(xiě)在前面
目前大部分的項(xiàng)目,基本上都采用了前后端分離的框架。隨著項(xiàng)目的不斷做大做強(qiáng),框架就會(huì)變得很龐大。
那么前端的框架,也是會(huì)變得不斷的臃腫。不同的模塊項(xiàng)目前端,可能有些公共的方法,都是共用一套的,那一般的做法就是每個(gè)模塊都拷貝一份一樣的代碼。
那這樣就會(huì)存在問(wèn)題,如果有公共的方法需要修改,那所有的模塊前端框架都得改,這是一個(gè)比較大的問(wèn)題。
我們的java項(xiàng)目,就可以抽取公共的模塊,使用maven進(jìn)行管理;其實(shí)前端的框架,也是可以抽取公共的模塊,使用npm進(jìn)行管理。
那這里就涉及到公共模塊包,要如何存放的問(wèn)題了,這里就得有個(gè)npm模塊倉(cāng)庫(kù)才行。
那這里就有個(gè)問(wèn)題,我們自己公司開(kāi)發(fā)得公共模塊,不能夠發(fā)布到外網(wǎng)得中央倉(cāng)庫(kù)吧?這個(gè)是會(huì)存在安全問(wèn)題的,所以我們得有自己得一個(gè)倉(cāng)庫(kù)。
那這里就我們今天要講得主要內(nèi)容,使用nexus配置出npm私服。
好嘍,廢話(huà)不多說(shuō)了,我們上正菜嘍?。?!
1. 概述
在目前的前端都分離開(kāi)發(fā)時(shí),我們也會(huì)將前端編譯成組件的方式,實(shí)現(xiàn)在項(xiàng)目之間的重用。在很多情況下 我們可以將 組件發(fā)布到 npmjs.org網(wǎng)站,不過(guò)這個(gè)問(wèn)題是網(wǎng)速慢是網(wǎng)速慢,同時(shí)發(fā)布到外網(wǎng),總會(huì)存在一定的安全問(wèn)題。
有時(shí)我們只是在團(tuán)隊(duì)內(nèi)部使用,這樣我們可以部署自己的私服。
nexus 就是一個(gè)私服管理的軟件,他支持jar,也支持 npm的私服。
2. 部署nexus
nexus 這個(gè)軟件之前是免費(fèi)下載的,現(xiàn)在有商業(yè)版本和免費(fèi)版本。我們可以網(wǎng)絡(luò)上找到這些軟件,建議使用3.22以上的版本。
將tar –xzf *.gz 軟件解壓,然后執(zhí)行命令進(jìn)行啟動(dòng)。
解壓后我們可以看到:
解壓出了兩個(gè)目錄
注意不要使用root 用戶(hù)啟動(dòng)服務(wù),我們可以創(chuàng)建一個(gè)用戶(hù)
- 添加用戶(hù)
useradd nexus
- 對(duì)目錄進(jìn)行授權(quán)
chown -R nexus:nexus nexus-3.31.1-01 chown -R nexus:nexus sonatype-work chmod -R 744 nexus-3.31.1-01 chmod -R 744 sonatype-work
- 使用nexus 用戶(hù)啟動(dòng)
su nexus cd nexus-3.31.1-01/bin //可以嘗試以下命令啟動(dòng) ./nexus run //這個(gè)可以看到啟動(dòng)日志 ./nexus start & //后端啟動(dòng)
- 開(kāi)放端口
/sbin/iptables -I INPUT -p tcp --dport 8081 -j ACCEPT
3. 幾個(gè)概念
我們可以在私服上創(chuàng)建自己的庫(kù)。
庫(kù)分為三種類(lèi)型:
3.1 代理
這種可以代理比如淘寶的鏡像,這個(gè)數(shù)據(jù)塊,而且通常能找到我們需要的包。
3.2 本地包
這個(gè)意思是,我們可以將私有的包發(fā)送到本地包。這個(gè)用于發(fā)布包。
3.3 包分組
這個(gè)是將本地包和代理進(jìn)行組合,這個(gè)通常用來(lái)現(xiàn)在相關(guān)的包,這個(gè)用來(lái)下載包。
4. 配置NPM包
4.1 配置本地包
創(chuàng)建倉(cāng)庫(kù)
選擇倉(cāng)庫(kù)類(lèi)型
4.2 配置代理
這里我們配置的是代理淘寶。
4.3 配置包分組
4.4 配置好后我們就可以進(jìn)行發(fā)布和下載
- 配置使用私服
執(zhí)行下面的命令,指定本地倉(cāng)庫(kù)。
npm config set registry http://***:8081/repository/npm_llsydn_hosted/
- 登錄私服
npm login
輸入 nexus 的用戶(hù)密碼和有效登錄。
使用私服進(jìn)行安裝
npm install --registry=http://***:8081/repository/npm_llsydn_group/
注意這里使用的是包分組,這個(gè)分包組包括了本地和代理的鏡像。
發(fā)布組件包
直接使用 npm publish
進(jìn)行發(fā)布。
4.5 遇到的問(wèn)題
4.5.1 在登錄的時(shí)候遇到的問(wèn)題
執(zhí)行npm login,輸入正確的密碼后報(bào)錯(cuò)如下:
Unable to authenticate, need: BASIC realm=”Sonatype Nexus Repository Manager”
解決辦法:
4.5.2 登錄報(bào)錯(cuò)
Unable to authenticate, need: BASIC realm=”Sonatype Nexus Repository Manager”
這個(gè)錯(cuò)誤和上面的錯(cuò)誤看上去是一樣的。
這個(gè)錯(cuò)誤,在其他人的機(jī)器登錄又是可以的,解決辦法 找到文件:.npmrc
可以清空到這個(gè)文件,然后再重試就可以了。
以上就是NPM配置私服構(gòu)建內(nèi)網(wǎng)中央倉(cāng)庫(kù)過(guò)程詳解的詳細(xì)內(nèi)容,更多關(guān)于NPM配置私服內(nèi)網(wǎng)中央倉(cāng)庫(kù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
npm鏡像源證書(shū)過(guò)期的問(wèn)題解決
因?yàn)閚pm官方鏡像在國(guó)內(nèi)訪(fǎng)問(wèn)很慢,我們基本上都會(huì)選擇切換到國(guó)內(nèi)的一些npm鏡像,本文主要介紹了npm鏡像源證書(shū)過(guò)期的問(wèn)題解決,具有一定的參考價(jià)值,感興趣的可以了解一下2024-07-07NodeJs讀取JSON文件格式化時(shí)的注意事項(xiàng)
本文是作者在進(jìn)行NodeJs開(kāi)發(fā)時(shí)偶然發(fā)現(xiàn)的問(wèn)題,經(jīng)過(guò)一番努力,最終找到解決方案,分享給大家,有需要的小伙伴可以參考下2016-09-09Nodejs獲取網(wǎng)絡(luò)數(shù)據(jù)并生成Excel表格
這篇文章主要為大家詳細(xì)介紹了Nodejs獲取網(wǎng)絡(luò)數(shù)據(jù)并生成Excel表格的具體實(shí)現(xiàn)方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05詳解基于Node.js的HTTP/2 Server實(shí)踐
HTTP/2目前已經(jīng)逐漸的在各大網(wǎng)站上開(kāi)始使用,這篇文章主要介紹了詳解基于Node.js的HTTP/2 Server實(shí)踐,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05解決Node.js包管理器安裝報(bào)錯(cuò)npm?ERR!?code?1的問(wèn)題
在開(kāi)發(fā)過(guò)程中,我們經(jīng)常需要使用各種Node.js包來(lái)擴(kuò)展我們的應(yīng)用程序功能,這些包通常通過(guò)npm(Node.js包管理器)進(jìn)行安裝和管理,有時(shí)候我們可能會(huì)遇到一些關(guān)于npm的錯(cuò)誤,本文將詳細(xì)介紹如何解決這個(gè)問(wèn)題,并提供一個(gè)詳細(xì)的實(shí)例,需要的朋友可以參考下2024-03-03node使用Mongoose類(lèi)庫(kù)實(shí)現(xiàn)簡(jiǎn)單的增刪改查
Mongoose是在nodejs環(huán)境中對(duì)MongoDB數(shù)據(jù)庫(kù)操作的封裝,這篇文章主要介紹了node使用Mongoose類(lèi)庫(kù)實(shí)現(xiàn)簡(jiǎn)單的增刪改查,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-11-11node.js+Ajax實(shí)現(xiàn)獲取HTTP服務(wù)器返回?cái)?shù)據(jù)
這篇文章主要介紹了node.js+Ajax實(shí)現(xiàn)獲取HTTP服務(wù)器返回?cái)?shù)據(jù),講解的十分詳細(xì),也給出了很多的實(shí)例,是篇非常不錯(cuò)的文章,這里推薦給大家。2014-11-11