Taro CI 持续集成框架的配置与使用

LibraHeresy
• 阅读 364

痛点

使用 Taro 跨端框架开发小程序时,需要切换三个界面,进行三次操作,才能上传成功,上传代码步骤过于繁琐。

且多人开发时,如果想让自己代码生效,需要切换体验版代码为自己上传的版本。

vscode 打包 -> 微信开发者工具上传 -> 设置为体验版

方案

使用微信官方的 CI 插件包,即可实现命令行上传代码。

因为我使用的 Taro 本身就有 Taro CI,和 Taro 一样兼容了各个小程序平台,所以直接使用 Taro 提供的即可。

配置上传信息 -> vscode 命令行打包上传

Taro CI 完美解决我的痛点,而且因为是机器人上传,所以大家代码都可以上传到同一个体验版内,也不用切换界面,vscode 终端一行命令就可以完成打包上传操作。

环境

node: 14.17.3

Taro: 3.0.21

Taro CI: 3.5.3

实现

安装 tarojs/plugin-mini-ci

yarn add @tarojs/plugin-mini-ci -D

npm i @tarojs/plugin-mini-ci -D

配置参数

按照官方文档配置本地参数就可以了

Taro CI 官方文档

常见问题

打包报错

UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'platform' of undefined Taro CI 持续集成框架的配置与使用 此报错的原因是插件本身取值对象有问题,所以我们需要修改它的取值对象。

文件路径:node_modules\@tarojs\plugin-mini-ci\dist\index.js 51行

const platform = ctx.runOpts.options.platform;

修改为

const platform = ctx.runOpts.platform;

申请插件权限

插件安装以后是不能直接使用的(有时候也可以。。。),需要申请插件权限,需要用到 PostMan 等可以模拟请求的工具。

向插件开发者发起使用插件的申请

1. 获取 access_token

const config = {
  // 请求方式
  method: 'GET',
  // 请求地址
  url: 'https://api.weixin.qq.com/cgi-bin/token',
  // 请求参数
  param: {
    grant_type: 'client_credential', // 固定值
    appid: '', // 小程序 id
    secret: '', // 小程序密钥
  },
  // 示例
  example: 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=123&secret=123'
}

2. 申请插件权限

const config = {
  // 请求方式
  method: 'POST',
  // 请求地址
  url: 'https://api.weixin.qq.com/wxa/plugin',
  // 请求参数
  param: {
    access_token: 'client_credential', // token
    action: 'apply', // 固定值
    plugin_appid: '', // 小程序 id
  },
}

IP 白名单

有时候会提示 ip 地址非法,是因为小程序默认开启了 ip 白名单,所以不能上传。这时候就需要添加 ip 地址到白名单或者关闭白名单。

在这推荐的是关闭白名单,因为添加 ip 白名单需要管理员权限,这是安全与效率的取舍。

Taro CI 持续集成框架的配置与使用

Taro CI 持续集成框架的配置与使用

Taro CI 持续集成框架的配置与使用

关于其他参数配置

因为 Taro CI 就是各家小程序持续集成插件的封装,所以各个小程序的配置参数理论上都可以使用,但是因为 Taro CI 并没有开放出来,所以当我们有自定义需求时,只能直接修改插件包。

微信小程序 CI 文档

比如我们给微信小程序添加一个压缩参数:

Taro CI 持续集成框架的配置与使用

Taro CI 持续集成框架的配置与使用

Taro CI 持续集成框架的配置与使用

我们可以看到小程序官方 CI 的配置数据结构,接下来我们看看 Taro CI 的:

文件路径:node_modules\@tarojs\plugin-mini-ci\dist\WeappCI.js

Taro CI 持续集成框架的配置与使用

简直是一模一样,所以我直接把我需要的配置写入,测试成功。

点赞
收藏
评论区
推荐文章
马丁路德 马丁路德
3年前
Taro 入门教程
简介Taro是一个遵循React语法规范的开放式跨端跨框架解决方案,支持使用React/Vue/Nerv等框架来开发微信/京东/百度/
Easter79 Easter79
3年前
Taro 牵手腾讯有数,助力小程序数据化运营
“ Taro引入了腾讯有数的微信小程序无痕埋点能力,为Taro的开发者提供真·零开发的8大无痕埋点能力以及自定义埋点能力,包含小程序启动、显示、隐藏、页面浏览、页面离开、分享、下拉刷新、上拉触底等八大自动化埋点能力以及搜索、商品归因等定制化埋点,以及经营分析、直播分析、导购分析等能力,让你的小程序可以基于微信生态,串联全场景多触点,
Easter79 Easter79
3年前
Taro小程序自定义顶部导航栏
微信自带的顶部导航栏是无法支持自定义icon和增加元素的,在开发小程序的时候自带的根本满足不了需求,分享一个封装好的组件,支持自定义icon、扩展dom,适配安卓、ios、h5,全面屏。我用的是京东的Taro多端编译框架写的小程序,原生的也可以适用,用到的微信/taro的api做调整就行,实现效果如下。!在这里插入图片描述(https://i
Easter79 Easter79
3年前
Taro 1.2:将已有微信小程序转换为多端应用
在距离Taro1.1发布之后一个月,经历了500多次提交和17 个预览版本的迭代之后,我们有信心在今天发布Taro1.2正式版。Taro1.2比起Taro1.1和其它的小程序开发框架,增加了许多首次在小程序框架上实现的功能,这些功能包括但不限于:微信小程序转多端应用字节跳动(头
Stella981 Stella981
3年前
STM32+EC20的电气安全监测终端软件框架(FreeRTOS+状态机)【技术篇01】
零电气安全监测终端是24小时x365天实时在线监测电气安全等方面数据。展示版本是没有开放电气采集方面的硬件和源码,是通过每分钟定时虚拟形成的数据来上传物联网云平台。硬件是使用STM32移远EC20的方案,硬件电路和软件代码开源,请在Gitee上搜索【allthingonline】获取,硬件电路图可以在文章底部添加我个人微信获取。本文中的代码可以
Wesley13 Wesley13
3年前
JAVA微信二次开发
大家首先自己有条件的,自己注册一个微信公众账号1.一个微信公众账号(供自己测试使用)2.一个百度开发账号3.myeclipse开发工具 4.需要熟悉jeecg开发5.微信开发代码如下标签:JEECG(http://www.oschina.net/code/tag/jeecg) MiniDao(h
Easter79 Easter79
3年前
Taro 版本升级权威指南
“Taro\1\是一款由京东凹凸实验室\2\推出的开放式跨端跨框架解决方案,致力于解决小程序、H5、ReactNative的跨端同构问题,支持同时使用React和Vue来进行开发。本文由Taro团队成员隔壁老李撰写,旨在帮助Taro开发者厘清当前Taro多版本之间关系的那些事儿,同时解答有关Taro3、T
Wesley13 Wesley13
3年前
10分钟上线
_摘要:_ 阿里云函数计算是一个事件驱动的全托管计算服务。通过函数计算,您无需管理服务器等基础设施,只需编写代码并上传。微信小程序是一种不需要下载安装即可使用的应用,它可以在微信内被便捷地获取和传播。当微信小程序遇见serverless,他们会产生奇妙火花,利用函数计算可以快速搭建微信小程序的serverle.点此查看原文:http://clic
Stella981 Stella981
3年前
Spring MVC 监听文件上传进度,实现上传进度条
首先Spring是一个非常成熟的J2EE框架,其非入侵式的架构为系统的集成和扩展提供了最大的可能。所以SpringMVC下实现进度监听非常容易,甚至不需要改以前的上传业务代码,具体实现分三个步骤:1、接管CommonsMultipartResolver,重写针对文件上传的请求。2、在第一步中写入监听,以获取上传进度。3、修改上传部分的配置
融云IM干货丨uni-app是什么
uniapp是一个使用Vue.js开发跨平台应用的前端框架。开发者可以通过编写一套代码,将应用发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。uniapp的主要特点