? ? ? ?在日常工作中,遇到了Jenkins拉取部門內部組件庫失敗的情況,原因是組件庫后面放到了阿里云私倉,并且是沒有公開的,所以就會有如下提示的,一開始我實在.npmrc文件寫死阿里云提供的接入token,后面發現可能是因為token過期,導致拉取失敗,如下圖:
? ? ? ?因為這種token會時不時過期,就應該考慮每次打包的時候去登錄一次,保證每次打包的時候拉取依賴是成功的。這個時候npm上面有一個專門用來這種無界面的登錄,叫做npm-login-cmd - npm?,這個可以實現Jenkins腳本里面配置好一些變量,然后再Jenkins的打包配置里面,加上變量配置,npm-login-cmd會自動讀取并且登錄到阿里云私倉
export NPM_USER=john
export NPM_PASS=secret
export NPM_EMAIL=john@example.com
npx npm-login-cmd
? ? ? ?在項目中,我在.npmrc文件中,配置了項目全局拉取依賴的地址,所以這里npm-login-cmd在登錄的時候會登錄到這個地址
然后再Jenkins的打包代碼中插入npm-login-cmd的用法代碼,可以看到我的打包代碼里面,多了一行安裝命令
npm install -g npm-login-cmd --registry=https://registry.npmmirror.com/
這個是因為當時直接pnpm add npm-login-cmd,很奇怪提示說找不到npm-login-cmd,由于當時時間緊任務急,就直接把安裝的鏡像地址直接改回淘寶官方的,這樣子就可以直接下載安裝了。
如上圖,在Jenkins里面配置好全局變量,在腳本里面就可以直接使用,免得多個項目都得同時修改。如果大家遇到類似情況,就可以使用這種辦法來登錄私倉拉取一些自定義的組件庫或者方法庫。
? ? ? ?最后,除了npm-login-cmd,還有一些其他的依賴可以用,比如npm-login-cli,使用方法也很簡單。?