前端性能优化五十七:云效npm发布

本文介绍了在CI/CD工具如Jenkins和云效中,如何避免交互式npmlogin并使用authToken进行安全的npm仓库登录,包括获取和应用authToken的方法,以及遇到的常见问题和解决方案。
摘要由CSDN通过智能技术生成

1. 一行命令登录npm仓库:

(1). 背景:

. 在Jenkins、云效等CI环境中使用Npm访问认证的仓库,需要交互命令:
    a. npm login交互式的输入用户名、密码、邮箱的方式
    b. 不适合CI环境

②. 方案:
    a. 使用延迟输入、管道重定向、expect命令等方式,如果安装软件或仓库响应慢的情况下,也容易登录失败
    b. shell方案
    c. 使用authToken方式直接登录指定npm仓库:
       (1). authToken是npm用户登陆仓库时,由npm仓库生成返回给客户端,记录到客户端的~/.npmrc中

(2). 获取authToken:

// 在本地设置npm仓库:
npm login --registry=https://packages.aliyun.com/619c46efcc6e31f53d1804bf/npm/npm-registry/

(3). 登陆后,打开~/.npmrc:

//packages.aliyun.com/619c46efcc6e31f53d1804bf/npm/npm-registry/:_authToken=xxxx-xxxx

仓库认证地址前协议被去除,即以//开头


(4). 修改Jenkins修改脚本中登录npm仓库命令:

stage('前端构建发布') {
  steps {
    sh label: '设置npm仓库', script: 'npm set registry ${NVWA_NPM_REGISTRY}'
    sh label: '登陆仓库', script: 'npm config set //packages.aliyun.com/619c46efcc6e31f53d1804bf/npm/:_authToken ${NVWA_AUTH_TOKEN}'
    sh label: '安装cli', script: 'npm install -g cx-cli@latest'
    sh label: '构建上传npm仓库', script: '/bin/bash ${SHELL_PATH}/public-web.sh'
  }
}

脚本中环境变量处定义:
${NVWA_NPM_REGISTRY}

(5). 云效实战:

npm config set //packages.aliyun.com/619c46efcc6e31f53d1804bf/npm/npm-registry/:_authToken xxxx-xxxx

npm install -g cx-cli@latest

yarn install

yarn build

其它token失败的方案:

sudo npm install -g cx-cli --registry=https://packages.aliyun.com/619c46efcc6e31f53d1804bf/npm/npm-registry/cx-cli/:_authToken=xxxx-xxxx

报错:
invalid json response body at https://packages.aliyun.com/619c46efcc6e31f53d1804bf/npm/npm-registry/cx-cli/:_authToken=xxxx-xxxx/cx-cli reason: Unexpected token < in JSON at position 2
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值