本文轉載自:https://www.cnblogs.com/sanduzxcvbnm/p/13100534.html
PS:這個作者還整理了很多Nexus相關的文章,有問題可以多參考下
當我們運行前端項目的時候,常常在解決依賴的時候會加上一個參數npm install --registry=https://registry.npm.taobao.org
將源指定為淘寶的源,以期讓速度加快起來,事實上這種的確能夠讓速度變快,但是長久來看,如果想真正的快速敏捷開發部署,搭建企業內部的私服,則會讓速度更上一個台階。
搭建npm私服,我們依舊使用nexus3。
與其他私服一樣的,npm私服同樣有三種類型:
hosted
: 本地存儲,即同 docker 官方倉庫一樣提供本地私服功能proxy
: 提供代理其他倉庫的類型,如 docker 中央倉庫group
: 組類型,實質作用是組合多個倉庫為一個地址
那么就來一個一個創建。
1. 創建blob存儲
為其創建一個單獨的存儲空間。
2. 創建hosted類型的npm
Name
: 定義一個名稱local-npmStorage
:Blob store,我們下拉選擇前面創建好的專用blob:npm-hub。Hosted
:開發環境,我們運行重復發布,因此Delpoyment policy 我們選擇Allow redeploy。這個很重要!
3. 創建一個proxy類型的npm倉庫
Name
: proxy-npmProxy
:Remote Storage: 遠程倉庫地址,這里填寫: https://registry.npmjs.orgStorage
: npm-hub。
其他的均是默認。
整體配置截圖如下:
4. 創建一個group類型的npm倉庫
Name
:group-npmStorage
:選擇專用的blob存儲npm-hub。group
: 將左邊可選的2個倉庫,添加到右邊的members下。
整體配置截圖如下:
這些配置完成之后,就可以使用了。
5. 驗證使用
新建一台環境干凈的主機,安裝好node環境,然后拷貝一份前端項目的源碼。
獲取默認的倉庫地址
# npm config get registry
https://registry.npmjs.org/
配置為私服地址。
從如下截圖中查看(其實就是創建的組對外的地址)。
通過如下命令配置:
# npm config set registry http://192.168.75.11:8081/repository/group-npm/
# npm config get registry
http://192.168.75.11:8081/repository/group-npm/
現在開始安裝,安裝之前先看一下組里的內容:
可以看到還是空的。
安裝編譯
前端框架網址:https://wepyjs.github.io/wepy-docs/2.x/
npm install @wepy/cli -g
在編譯的過程中,我們已經可以看看組里的變化了:
再一次安裝編譯
這里再准備一台環境干凈的主機,然后進行一次編譯安裝,看看效果。
編譯之前,先將遠程地址配置為我們自己的:
# npm config set registry http://192.168.75.11:8081/repository/group-npm/
# npm config get registry
http://192.168.75.11:8081/repository/group-npm/
可以看到,同樣是全新的環境下,因為第一次已經將依賴從遠程緩存到本地私服,那么在第二次安裝編譯的時候,用時比首次快多了。
驗證問題(npm 401)解決
很多時候,Nexus的設置是不允許匿名用戶訪問資源的。這種情況下就需要登錄才能訪問。使用下面的配置,就不需要每次登錄。
首先使用管理員用戶激活npm realms。
然后配置
# 根據提示輸入用戶/密碼/郵箱
npm adduser --registry=私服地址
# 再設置倉庫
npm config set registry http:私服地址
官網還提供了另外一種解決方案,有興趣的可以看下。