快速上手
minici使用方式非常简单,只需要在有需要的项目中引入即可,侵入零成本
安装
mini ci包含了多个包,其中包括ci包、核心包、不同平台包以及其它辅助包,默认安装ci包就会自动安装所有必备包,然后使用者可以根据需要安装不同的平台的包即可
由于外部可能会引用没直接在项目中安装的包(俗称:幽灵包),对于某些安装工具可能没有提示如:pnpm,因此当需要引入其他必须包时(一般进行灵活配置ci),推荐在项目中直接安装一遍,这样就不会出现幽灵包问题
- 一些必备包
sh
pnpm add @hengshuai/mini-ci -D # 命令工具
pnpm add @hengshuai/mini-core -D # mini核心
pnpm add @hengshuai/mini-helper -D # 辅助包
pnpm add @hengshuai/mini-type -D # 常量及类型包
1
2
3
4
2
3
4
- 平台插件包:使用者根据需求安装
sh
pnpm add @hengshuai/mini-wechat -D # 微信小程序包
pnpm add @hengshuai/mini-alipay -D # 支付宝小程序包
# 其他...
1
2
3
2
3
初始化
以上包安装完后就可以配置ci了,工具内部提供了默认配置文件,只需执行以下命令:
sh
npx mini-ci init
1
执行完命令后自动会在项目中生成默认的ci配置文件,然后根据需要修改配置文件即可
配置
默认的配置文件在.mini-ci/mini-ci.config.js
文件,开发者可以根据实际情况进行调整
配置文件
下面是一份最基本的ci配置文件:
js
// .mini-ci/mini-ci.config.js
const { defineConfig } = require("@hengshuai/mini-core");
const { Platform, IProjectActionMode } = require("@hengshuai/mini-type");
const config = defineConfig({
ci: {
// ci通用配置
},
// 不同平台配置
platforms: {
// 微信平台
[Platform.Wechat]: {
// 平台专有配置
platformSpecific: {
// 项目路径
projectPath: "./dist/build/mp-weixin",
// 上传代码私钥(请从平台后台上获取)
privateKeyPath: ".mini-ci/keys/wechat-upload-code.key",
},
subs: [
{
appId: "wx123445534",
admin: "https://mp.weixin.qq.com",
version: "0.0.1",
// 执行模式(这里默认上传代码)
mode: IProjectActionMode.UPLOAD_CODE,
// 是否跳过上传代码
skipUpload: false,
// 不同appid可能目录不同
projectPath: "xxx",
// 不同appid的私钥应该不同
privateKeyPath: "xxx",
description: "测试ci " + +new Date(),
// 代码压缩配置
compiler: {
es6: false,
es7: true,
minifyJS: true,
},
},
],
},
// 其他平台...
},
});
module.exports = config;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
私钥
出于安全性考虑不同平台的小程序上传代码需要使用私钥,因此需要先在平台后台获取私钥,然后保存到本地。假如实际开发中可能有多人同时参与开发,那么每个人都要有开发者权限,而且不同也包括不同平台的权限。那么只需要将某个平台的某个人的私钥保存到本地即可
假设有2个微信小程序和1个支付宝小程序,那么就需要3个私钥:
.mini-ci/keys/wechat-wx1234-upload-key.key
.mini-ci/keys/wechat-wx1235-upload-key.key
.mini-ci/keys/alipay-2020323424-upload-key.key
修改配置文件:
js
// 部分字段省略.
const config = defineConfig({
platforms: {
[Platform.Wechat]: {
subs: [
{
appid: "微信1",
privateKeyPath: ".mini-ci/keys/wechat-wx1234-upload-key.key"
},
{
appid: "微信2",
privateKeyPath: ".mini-ci/keys/wechat-wx1235-upload-key.key"
}
]
},
[Platform.Alipay]: {
subs: [
{
appid: "支付宝",
privateKeyPath: ".mini-ci/keys/alipay-2020323424-upload-key.key"
}
]
}
}
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
执行
再执行ci前请确保各种配置已经完成,如:对应的appid、私钥、路径等
sh
npx mini-ci start
# 或配置npm脚本
pnpm ci
1
2
3
2
3
命令执行进度可以在终端查看,如果执行失败,请查看相关信息