1. 程式人生 > 其它 >使用Nexus搭建npm私服

使用Nexus搭建npm私服

本文轉載自: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-npm
  • Storage:Blob store,我們下拉選擇前面建立好的專用blob:npm-hub。
  • Hosted:開發環境,我們執行重複釋出,因此Delpoyment policy 我們選擇Allow redeploy。這個很重要!

3. 建立一個proxy型別的npm倉庫

其他的均是預設。

整體配置截圖如下:

4. 建立一個group型別的npm倉庫

  • Name:group-npm
  • Storage:選擇專用的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:私服地址

官網還提供了另外一種解決方案,有興趣的可以看下。