• Stars
    star
    138
  • Rank 264,508 (Top 6 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 2 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

基于微信小程序 miniprogram-ci 开发的更快速、更方便且支持多选、批量等功能的小程序上传、预览自动化工具

mini-ci

基于微信小程序 miniprogram-ci 开发的更快速、更方便且支持多选等功能的小程序上传、预览自动化工具

npm @ruochuan/mini-ci

npm version codecov npm download github forks github stars github watchers github license

miniprogram-ci 官方文档

使用 miniprogram-ci 前应访问"微信公众平台 - 开发管理 - 开发设置 - 小程序代码上传"后下载代码上传密钥,一般来说自己使用,可以关闭 IP 白名单,因为 IP 地址可能变。

帮助信息 && 上传效果

显示帮助信息

显示帮助信息

上传效果

上传效果

预览效果就是在控制台显示二维码。

使用及功能列表

# 全局安装
npm i @ruochuan/mini-ci -g
# 或者安装到项目中
# npm i @ruochuan/mini-ci -D

# 如果希望实时使用最新版,则可以使用 npx 不全局安装
npx @ruochuan/mini-ci -h
# 注意:版本不同功能可能也不同

# 首次使用时,可以先在小程序项目中,快速初始化配置项
mini-ci init
会把 [miniConfig](https://github.com/lxchuan12/mini-ci/tree/main/packages/mini-ci/miniConfig) 的配置拷贝生成到当前小程序项目(或者新项目)中。

# 查看帮助
mini-ci -h
mini-ci --help

# 查看版本号
mini-ci -v
mini-ci --version

# 或者别名 ruochuan-mini-ci 、rmc
ruochuan-mini-ci --help
rmc --help
  • 支持快速初始化配置 mini-ci init
  • 支持上传 mini-ci upload
  • 支持预览 mini-ci preview
  • 支持空跑,不执行 mini-ci upload --dry
  • 支持指定配置文件 mini-ci --config (xxxx/xxx.js|json)
  • 支持指定参数 如 robot 默认是 1,命令:mini-ci upload --robot 2
  • 支持指定模式读取 .env 文件(默认)mini-ci --mode xxx 若指定了则是 .env.[mode]
  • 支持单选多个小程序 mini-ci upload --useSelect
  • 支持选择多个批量上传 mini-ci upload --useMultiSelect
  • 支持选择全部的批量上传 mini-ci upload --useAllConfig
  • js、json、.env 配置文件
    • 配置文件支持 js (更灵活更推荐),也支持 json 文件,也支持 .env,优先级 .env 最低
    • 支持默认读取配置的 json 路径的版本
    • 支持插件 plugins,支持上传、预览前后替换文件 replaceRules
    • 支持默认的版本描述 descv${version} - git commit hash - by@${作者}`
    • 支持自定义的 projectOptionsuploadOptionspreviewOptions 配置,参考 mini.config.js 配置
参数可以相互结合。
--dry 空跑 (alias:-d)
--robot 2 [ 可选 1-30 ] (alias:-r)
--config (xxxx/xxx.js|json) 指定配置文件  (alias:-c)
# 简单场景 指定模式  默认读取 .env  若指定了则是 .env.[mode]
--mode xxx 指定 .env.[mode]

--useSelect 单选 (alias:-s)
--useMultiSelect 多选批量上传 (alias:-m)
--useAllConfig 选择所有配置批量操作 (alias:-a)

配置文件

首次使用前需先执行 mini-ci init 配置 mini.config.js 配置(更推荐)

执行 mini-ci init 会把 miniConfig 的配置拷贝生成到当前小程序项目(或者新项目)中。

在当前小程序项目(或者新项目)的目录下配置 mini.config.js,这个优先于 .env

参考当前项目中的 mini.config.js

按照微信小程序文档配置小程序密钥等,这样就能上传和预览了。如果没有微信小程序,可以自行免费开通个人的微信小程序

或者配置 .env

在当前小程序项目(或者新项目)的目录下配置 .env

参考当前项目中的 .env

configPath 配置

如果需要单选或者多选时,需配置 configPath

参考 当前项目中的 miniConfigList/example.js

关于小程序自动提升版本、打 tag、生成 changelog 等

推荐使用 release-it,具体使用方法可以参考 release-it 官方仓库 或者我的文章 release-it 自动提升版本、打 tag、生成 changelog 等

可自行开发

一般不需要自行开发,欢迎 forkPR,或者加我微信 ruochuan02 交流反馈。

# 克隆我写的 mini-ci 工具
git clone https://github.com/lxchuan12/mini-ci.git
cd mini-ci
pnpm install
# 没有自己的小程序可以克隆腾讯开源的电商小程序
git clone https://github.com/lxchuan12/tdesign-miniprogram-starter-retail.git
# 切到分支 feature/release-it
git checkout feature/release-it

可以克隆我的项目,到一个目录中,比如 projects 中。

再克隆我的另外一个小程序(腾讯开源的电商小程序),到同一个目录中。比如 projects 中。

TODOs

  • 使用 ES Module 开发
  • 初步引入 TS
  • 支持 init 快速初始化配置
  • 配置文件支持 js (更灵活更推荐),也支持 json 文件
  • 支持替换功能,比如替换 url 等
  • 支持插件 plugin
  • 初步加入测试
  • 校验 nodejs 版本
  • 支持可视化操作

原理文章

文章已完成README-2,也已发布在掘金。

还在用开发者工具上传小程序? 快来试试 miniprogram-ci 提效摸鱼

注意:文章是基于 tag v0.7.0 撰写。后续 mini-ci 会持续更新,文章暂时不会更新。

与社区已有的工具对比

Taro 小程序插件 @tarojs/plugin-mini-ci

如果使用 Taro 开发的小程序,可以直接使用。

具体如何使用参考文档,在这里就不赘述了。

小程序持续集成 @tarojs/plugin-mini-ci

我体验下来的感觉有以下几点可以优化。

  • 不支持指定机器人
  • 不支持不打包时上传
  • 不支持官方提供的更多配置
  • 不支持选择多个小程序批量上传等等

uni-app 好像没有提供类似的插件

原生 miniprogram-ci 多配置时很麻烦,需要自己开发

More Repositories

1

blog

若川的博客—撰写了学习源码整体架构系列20余篇。组织了源码共读活动,每周一起学习200行左右的源码,加我微信 ruochuan02 参与。
Shell
545
star
2

axios-analysis

学习源码整体架构系列多篇之axios源码,前端面试高频源码。我组织了源码共读活动,每周一起学习200行左右的源码,加我微信 ruochuan12 参与。
JavaScript
101
star
3

koa-analysis

学习源码整体架构系列多篇之koa源码,前端面试高频源码,微信搜索「若川视野」关注我,长期交流学习~
JavaScript
74
star
4

juejin-actions

掘金每天自动签到 github actions 。组织了每周一起学习200行左右的【源码共读】活动,感兴趣可以加我微信 ruochuan12 参与。
JavaScript
47
star
5

nodejs-debugging

新手向:前端程序员必学基本技能——调试JS代码
Shell
46
star
6

learn-nodejs

learn-nodejs 前端使用 puppeteer 爬虫生成《React.js 小书》PDF并合并 链接是掘金,阅读体验效果可能更佳
JavaScript
44
star
7

vuex-analysis

学习源码整体架构系列8篇之vuex源码,前端面试高频源码,微信搜索「若川视野」关注我,长期交流学习~
JavaScript
43
star
8

redux-analysis

《学习源码整体架构系列》多篇之redux源码,前端面试高频源码,微信搜索「若川视野」关注我,长期交流学习~
JavaScript
37
star
9

vue-dev-server-analysis

尤雨溪几年前开发的“玩具 vite”,才100多行代码,却十分有助于理解 vite 原理
JavaScript
35
star
10

awesome-front-end

前端资料收集,长期收集更新
30
star
11

analyse-vue-cli

分析[email protected] 搭建的webpack项目工程,欢迎star 支持^_^~ 链接是思否,阅读体验可能更佳
JavaScript
28
star
12

koa-compose-analysis

50行代码串行Promise,koa洋葱模型原来是这么实现?
JavaScript
24
star
13

vue-next-analysis

vue-next-analysis
TypeScript
23
star
14

html5

学习前端技术,动手练习的Demo
JavaScript
20
star
15

create-vue-analysis

Vue 团队公开快如闪电的全新脚手架工具 create-vue,未来将替代 Vue-CLI,才300余行代码,学它!
Vue
18
star
16

ni-analysis

尤雨溪推荐神器 ni ,能替代 npm/yarn/pnpm ?简单好用!源码揭秘!
TypeScript
13
star
17

vuex4-analysis

学习源码整体架构系列多篇之vuex4源码,前端面试高频源码,微信搜索「若川视野」关注我,长期交流学习~
JavaScript
13
star
18

remote-git-tags-analysis

从22行有趣的源码库中,我学到了 callback promisify 化的 Node.js 源码实现
Shell
12
star
19

vue-analysis

vue-analysis
JavaScript
12
star
20

vue-cms

后端CMS运营界面-vue1.x实现:上传图片、拖拽排序、整体保存等功能
JavaScript
11
star
21

vite-analysis

vite 3.0 都发布了,经常初始化 vite 项目,却不知 create-vite 原理?揭秘!
TypeScript
11
star
22

only-allow-analysis

从 vue3 和 vite 源码中,我学到了一行代码统一规范团队包管理器的神器
Shell
9
star
23

open-in-editor

据说 99% 的人不知道 vue-devtools 还能直接打开对应组件文件?本文原理揭秘
Vue
8
star
24

sticky-notes

基于原生JS、webpack4构建的一个可拖拽的便签(sticky-notes)练手小项目,欢迎使用和star ^_^
JavaScript
8
star
25

fe-cli

fe-cli
JavaScript
7
star
26

dotenv-analysis

面试官:项目中常用的 .env 文件原理是什么?如何实现?
JavaScript
7
star
27

element-analysis

每次新增页面复制粘贴?100多行源码的 element-ui 新增组件功能告诉你减少重复工作
Vue
7
star
28

install-pkg-analysis

Vue团队核心成员开发的39行小工具 install-pkg 安装包,值得一学!
TypeScript
7
star
29

Fashion-Studio

江西省网页大赛一等奖,作品名称:时尚影楼网站(html,css,js,jquery)
HTML
6
star
30

delay-analysis

面试官:请手写一个带取消功能的延迟函数,axios 取消功能的原理是什么
JavaScript
6
star
31

lxchuan12.github.io

若川的博客—前端视野
HTML
4
star
32

open-analysis

每次启动项目的服务,电脑竟然乖乖的帮我打开了浏览器,100行源码揭秘!
JavaScript
4
star
33

read-pkg-analysis

从 vue-cli 源码中,我发现了27行读取 package.json 的 npm 包
JavaScript
3
star
34

jquery-analysis

jquery-analysis
HTML
3
star
35

front-end-vision

前端视野
2
star
36

react-redux-analysis

react-redux-analysis
JavaScript
2
star
37

lodash-analysis

学习 lodash 源码整体架构,打造属于自己的函数式编程类库
JavaScript
2
star
38

baidu-ife

百度前端技术学院任务,http://ife.baidu.com/task/all
HTML
2
star
39

analyse-create-react-app

analyse-create-react-app
JavaScript
2
star
40

git-repo-template

project-template
Shell
2
star
41

webpack-analysis

webpack-analysis
JavaScript
2
star
42

element-plus-analysis

element-plus-analysis
Vue
2
star
43

vant-analysis

TypeScript
2
star
44

express-locallibrary-tutorial

express-locallibrary-tutorial
JavaScript
2
star
45

font

1
star
46

lxchuan12

readme
1
star
47

launch-editor-analysis

分析 vue-devtools 「根据组件打开编辑」 小功能实现原理
1
star
48

axios

1
star
49

ts-playground

typescript-playground
TypeScript
1
star
50

taroify-analysis

TypeScript
1
star
51

geek

geek
JavaScript
1
star
52

some-projects

ES6项目
JavaScript
1
star
53

react-app-demo

react-app-demo
JavaScript
1
star
54

github-yearly-report

GitHub 非官方年终数据报告
Vue
1
star
55

analysis

1
star
56

awesome-projects

存放 项目 demo 等
1
star
57

configstore-analysis

configstore-analysis
JavaScript
1
star
58

vite-project

vite-project
TypeScript
1
star
59

vue-cnodejs1.0

JavaScript
1
star
60

wepy-project

wepy-project
JavaScript
1
star
61

vue-dropdown

vue-dropdown
JavaScript
1
star
62

mvvm-todolist

mvvm-todolist
JavaScript
1
star
63

create-new-repo

create-repo
JavaScript
1
star
64

leetcode-javascript

leetcode-javascript
JavaScript
1
star
65

weapp-demo

微信小程序的demo
JavaScript
1
star
66

vue-cli-analysis

JavaScript
1
star
67

sentry-analysis

sentry-analysis
JavaScript
1
star
68

vant-weapp-analysis

经常用 vant-weapp 开发小程序,却不知道如何开发一个组件?学!
JavaScript
1
star
69

express-analysis

express-analysis
JavaScript
1
star
70

vue-cnode

vue-cli vue2.x项目初始化,配置eslint,vue-router,vuex,axios等
JavaScript
1
star
71

vscode-extension

vscode-extension
JavaScript
1
star
72

create-release-it-analysis

JavaScript
1
star
73

bundt-analysis

TypeScript
1
star
74

react-news

react-news
JavaScript
1
star
75

gulp-requirejs-app

gulp-requirejs-app
CSS
1
star
76

git-flow-examples

git-flow-examples
1
star
77

react-use-analysis

自从学了 react-use 源码,我写自定义 React Hooks 越来越顺了~
TypeScript
1
star