taro
taro copied to clipboard
feat(taro-plugin-mini-ci): 支持微信小程序第三方平台代开发模式
这个 PR 做了什么? (简要描述所做更改)
微信小程序第三方平台代开发模式下,ci 工具上传代码的行为有差异。 此次修改会根据上传时的 ext.json 文件内容来做区别处理。
具体见:https://developers.weixin.qq.com/miniprogram/dev/devtools/ext.html#directCommit
这个 PR 是什么类型? (至少选择一个)
- [ ] 错误修复(Bugfix) issue: fix #
- [x] 新功能(Feature)
- [ ] 代码重构(Refactor)
- [ ] TypeScript 类型定义修改(Typings)
- [ ] 文档修改(Docs)
- [ ] 代码风格更新(Code style update)
- [ ] 其他,请描述(Other, please describe):
这个 PR 涉及以下平台:
- [ ] 所有小程序
- [x] 微信小程序
- [ ] 支付宝小程序
- [ ] 百度小程序
- [ ] 字节跳动小程序
- [ ] QQ 轻应用
- [ ] 京东小程序
- [ ] 快应用平台(QuickApp)
- [ ] Web 平台(H5)
- [ ] 移动端(React-Native)
- [ ] 鸿蒙(harmony)
欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷
一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。
Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏
- 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
- 确保 CI 顺利运行。
- 最好能提供对应的测试用例。
为了更好地进行沟通,请加入 Taro 开发者微信群:
欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷
一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。
Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏
- 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
- 确保 CI 顺利运行。
- 最好能提供对应的测试用例。
为了更好地进行沟通,请加入 Taro 开发者微信群:
欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷
一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。
Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏
- 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
- 确保 CI 顺利运行。
- 最好能提供对应的测试用例。
为了更好地进行沟通,请加入 Taro 开发者微信群:
欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷
一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。
Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏
- 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
- 确保 CI 顺利运行。
- 最好能提供对应的测试用例。
为了更好地进行沟通,请加入 Taro 开发者微信群:
欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷
一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。
Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏
- 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
- 确保 CI 顺利运行。
- 最好能提供对应的测试用例。
为了更好地进行沟通,请加入 Taro 开发者微信群:
欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷
一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。
Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏
- 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
- 确保 CI 顺利运行。
- 最好能提供对应的测试用例。
为了更好地进行沟通,请加入 Taro 开发者微信群:
欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷
一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。
Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏
- 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
- 确保 CI 顺利运行。
- 最好能提供对应的测试用例。
为了更好地进行沟通,请加入 Taro 开发者微信群:
欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷
一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。
Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏
- 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
- 确保 CI 顺利运行。
- 最好能提供对应的测试用例。
为了更好地进行沟通,请加入 Taro 开发者微信群:
欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷
一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。
Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏
- 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
- 确保 CI 顺利运行。
- 最好能提供对应的测试用例。
为了更好地进行沟通,请加入 Taro 开发者微信群:
欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷
一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。
Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏
- 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
- 确保 CI 顺利运行。
- 最好能提供对应的测试用例。
为了更好地进行沟通,请加入 Taro 开发者微信群:
欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷
一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。
Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏
- 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
- 确保 CI 顺利运行。
- 最好能提供对应的测试用例。
为了更好地进行沟通,请加入 Taro 开发者微信群:
欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷
一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。
Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏
- 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
- 确保 CI 顺利运行。
- 最好能提供对应的测试用例。
为了更好地进行沟通,请加入 Taro 开发者微信群:
欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷
一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。
Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏
- 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
- 确保 CI 顺利运行。
- 最好能提供对应的测试用例。
为了更好地进行沟通,请加入 Taro 开发者微信群:
欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷
一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。
Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏
- 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
- 确保 CI 顺利运行。
- 最好能提供对应的测试用例。
为了更好地进行沟通,请加入 Taro 开发者微信群:
欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷
一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。
Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏
- 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
- 确保 CI 顺利运行。
- 最好能提供对应的测试用例。
为了更好地进行沟通,请加入 Taro 开发者微信群:
欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷
一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。
Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏
- 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
- 确保 CI 顺利运行。
- 最好能提供对应的测试用例。
为了更好地进行沟通,请加入 Taro 开发者微信群:
欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷
一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。
Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏
- 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
- 确保 CI 顺利运行。
- 最好能提供对应的测试用例。
为了更好地进行沟通,请加入 Taro 开发者微信群:
欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷
一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。
Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏
- 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
- 确保 CI 顺利运行。
- 最好能提供对应的测试用例。
为了更好地进行沟通,请加入 Taro 开发者微信群:
欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷
一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。
Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏
- 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
- 确保 CI 顺利运行。
- 最好能提供对应的测试用例。
为了更好地进行沟通,请加入 Taro 开发者微信群:
欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷
一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。
Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏
- 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
- 确保 CI 顺利运行。
- 最好能提供对应的测试用例。
为了更好地进行沟通,请加入 Taro 开发者微信群:
欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷
一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。
Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏
- 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
- 确保 CI 顺利运行。
- 最好能提供对应的测试用例。
为了更好地进行沟通,请加入 Taro 开发者微信群:
欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷
一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。
Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏
- 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
- 确保 CI 顺利运行。
- 最好能提供对应的测试用例。
为了更好地进行沟通,请加入 Taro 开发者微信群:
欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷
一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。
Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏
- 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
- 确保 CI 顺利运行。
- 最好能提供对应的测试用例。
为了更好地进行沟通,请加入 Taro 开发者微信群:
欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷
一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。
Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏
- 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
- 确保 CI 顺利运行。
- 最好能提供对应的测试用例。
为了更好地进行沟通,请加入 Taro 开发者微信群:
欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷
一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。
Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏
- 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
- 确保 CI 顺利运行。
- 最好能提供对应的测试用例。
为了更好地进行沟通,请加入 Taro 开发者微信群:
欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷
一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。
Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏
- 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
- 确保 CI 顺利运行。
- 最好能提供对应的测试用例。
为了更好地进行沟通,请加入 Taro 开发者微信群:
欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷
一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。
Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏
- 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
- 确保 CI 顺利运行。
- 最好能提供对应的测试用例。
为了更好地进行沟通,请加入 Taro 开发者微信群:
如果我没记错的话, 你只要把 appid 配置成 “第三方平台代开发的appid” (extAppid 和 appid一致即可 ), 那么会自动上传到第三方平台的草稿箱里,上传流程并无任何区别。 看代码里的区别:
- 生成的体验码规则略有区别(多了一个iswxtpa=1参数,删掉这个参数实际效果是否一致?)
- 可不生成体验码; 但是生成的体验码可以用来调试 extAppid 对应的小程序,且 directCommit 选项和这个包的上传配置没有任何关系,它是另外一个独立的配置文件
ext.json
总结: 除了你项目下多了一个 ext.json 配置以外,其他没有区别呀
首先明确:在“第三方平台代开发”模式下,只考虑“上传小程序代码”这个行为,原来的代码完全没问题。 问题出在上传完成后“是否应该生成体验码”以及“体验码规则”。
下面讨论的前提都是第三方平台代开发模式下
当一个小程序被绑定为开放平台的“开发小程序”后:
- “预览”时,代码被上传到小程序自身的开发版列表中,但是无法设置其为体验版。
- “上传”时,根据项目中的 ext.json 的配置不同,行为也有差异: a. 通常情况:代码被上传到开放平台的草稿箱中,与任何小程序无关。可调用一系列 API 将这份代码提交到特定小程序的待审核列表中然后为其发起审核; b. 开启 directCommit 时: 跳过上面的草稿箱环节,代码直接被上传到 extAppid 的待审核列表中。
也就是 ext.json 的配置并非与上传配置无关,其会隐式的影响代码上传的行为。观察不同情况下 ci 上传代码时的 http 请求参数也能得到印证。
另外绑定之后小程序后台的版本管理功能被禁用,所有相关功能只能通过调用开放平台 API 实现:
对于开头的两个问题:
-
体验码规则必须增加
iswxtpa=1参数:- 参数来源:微信提供了开放平台 API 用于生成体验码,其生成的二维码中包含这组参数。
- 小程序自身有一份体验版代码,这个代码来自于“普通开发模式”中被选为体验版的代码;
- 小程序待审核列表中有一份体验版代码,来自于上面提到的通过 directCommit 上传的或通过 API 提交的模版代码;
- 以上两份体验版代码共存,使用哪一份取决于是否有 iswxtpa 参数;
- 而在“第三方平台”模式下,显然我们关注的是待审核列表中的代码。
-
特定情况下不需要生成体验码,因为完全没有意义:
- 上文 2.a 场景中,上传的代码属于开放平台,与小程序完全没有关系,即便生成体验码打开的也不是此次上传的代码;
- 而 2.b 场景中,上传到待审核列表中的代码可以直接通过体验码打开,此时可以生成体验码。
上述都在实际项目中通过了验证。
请问有进展吗?这个问题开始影响日常构建流程了