寫在前邊
簡單介紹下:如何在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倉庫。我們下次更新再見。