写在前边

简单介绍下:如何在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仓库。我们下次更新再见。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐