1. 程式人生 > 其它 >CI環境:一行命令登入npm倉庫

CI環境:一行命令登入npm倉庫

技術標籤:CI/CD持續交付ci/cdnpmjenkins

寫在前邊

簡單介紹下:如何在Jenkins等CI環境中使用Npm訪問需要認證的倉庫。

使用 npm login 互動式的輸入使用者名稱、密碼、郵箱的方式不適合CI環境,使用延遲輸入、管道重定向、expect 命令等方式,需要對安裝軟體或者在倉庫響應慢的情況下,也容易登入失敗。

本文將帶你使用 authToken 的方式,一行命令直接登入指定npm倉庫。

獲取authToken

authToken 是 npm 使用者登陸倉庫時,由npm倉庫生成返回給客戶端,記錄到客戶端的 ~/.npmrc

首先,設定 npm 倉庫

npm set
registry <registry-url>

互動式登入倉庫,輸入使用者名稱、密碼、郵箱

npm login

登入完成後,開啟使用者目錄的 .npmrc,Linux在 ~/.npmrc, Windows在 C:\Users\<使用者名稱>\.npmrc中,找到 <registry-url> 對應倉庫地址,如圖

在這裡插入圖片描述

倉庫認證地址前協議被去除,即以 // 開頭

將上圖中 _authToken= 後引號中間的字串複製,此為登入使用者的 認證token

修改指令碼中登入npm倉庫命令

以 Jenkinsfile 中指令碼舉例,其它類似。

npm config set
//<registry-url>/:_authToken <authToken>

在這裡插入圖片描述

上圖的 ${NPM_AUTH_TOKEN} 在指令碼中環境變數處定義,取的 secret text 憑據串

通過以上簡單的方式即可完成一行命令登入npm倉庫。我們下次更新再見。