CI環境:一行命令登入npm倉庫
阿新 • • 發佈:2021-02-08
寫在前邊
簡單介紹下:如何在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倉庫。我們下次更新再見。