@tarojs/plugin-mini-ci 3.5.9 → 3.6.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +292 -53
- package/dist/AlipayCI.js +119 -63
- package/dist/AlipayCI.js.map +1 -1
- package/dist/BaseCi.js +28 -1
- package/dist/BaseCi.js.map +1 -1
- package/dist/DingtalkCI.js +174 -0
- package/dist/DingtalkCI.js.map +1 -0
- package/dist/SwanCI.js +77 -22
- package/dist/SwanCI.js.map +1 -1
- package/dist/TTCI.js +85 -59
- package/dist/TTCI.js.map +1 -1
- package/dist/WeappCI.js +93 -19
- package/dist/WeappCI.js.map +1 -1
- package/dist/hooks.js +8 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.js +105 -27
- package/dist/index.js.map +1 -1
- package/dist/utils/compareVersion.js +27 -0
- package/dist/utils/compareVersion.js.map +1 -0
- package/dist/utils/npm.js +20 -0
- package/dist/utils/npm.js.map +1 -0
- package/dist/utils/qrcode.js +53 -0
- package/dist/utils/qrcode.js.map +1 -0
- package/package.json +19 -5
- package/types/AlipayCI.d.ts +6 -8
- package/types/BaseCi.d.ts +67 -19
- package/types/DingtalkCI.d.ts +13 -0
- package/types/SwanCI.d.ts +3 -3
- package/types/TTCI.d.ts +5 -4
- package/types/WeappCI.d.ts +1 -1
- package/types/hooks.d.ts +4 -0
- package/types/index.d.ts +1 -1
- package/types/utils/compareVersion.d.ts +1 -0
- package/types/utils/npm.d.ts +2 -0
- package/types/utils/qrcode.d.ts +16 -0
- package/dist/QRCode.js +0 -11
- package/dist/QRCode.js.map +0 -1
- package/types/QRCode.d.ts +0 -5
package/dist/index.js
CHANGED
|
@@ -1,23 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const minimist = require("minimist");
|
|
4
|
+
const path = require("path");
|
|
4
5
|
const AlipayCI_1 = require("./AlipayCI");
|
|
6
|
+
const DingtalkCI_1 = require("./DingtalkCI");
|
|
5
7
|
const SwanCI_1 = require("./SwanCI");
|
|
6
8
|
const TTCI_1 = require("./TTCI");
|
|
7
9
|
const WeappCI_1 = require("./WeappCI");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
+
var EnumAction;
|
|
11
|
+
(function (EnumAction) {
|
|
12
|
+
/** 自动打开预览工具 */
|
|
13
|
+
EnumAction["open"] = "open";
|
|
14
|
+
/** 预览小程序(上传代码,作为“开发版”小程序) */
|
|
15
|
+
EnumAction["preview"] = "preview";
|
|
16
|
+
/** 上传小程序(上传代码,可设置为“体验版”小程序) */
|
|
17
|
+
EnumAction["upload"] = "upload";
|
|
18
|
+
})(EnumAction || (EnumAction = {}));
|
|
19
|
+
exports.default = (ctx, _pluginOpts) => {
|
|
20
|
+
const args = minimist(process.argv.slice(2), {
|
|
21
|
+
boolean: ["open" /* EnumAction.open */, "preview" /* EnumAction.preview */, "upload" /* EnumAction.upload */],
|
|
22
|
+
string: ['projectPath'],
|
|
23
|
+
default: {
|
|
24
|
+
projectPath: ''
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
const command = args._[0];
|
|
28
|
+
// 参数验证,支持传入配置对象、返回配置对象的异步函数
|
|
10
29
|
ctx.addPluginOptsSchema((joi) => {
|
|
11
|
-
return joi
|
|
30
|
+
return joi.alternatives().try(joi.function().required(), joi
|
|
12
31
|
.object()
|
|
13
32
|
.keys({
|
|
14
33
|
/** 微信小程序上传配置 */
|
|
15
34
|
weapp: joi.object({
|
|
16
35
|
appid: joi.string().required(),
|
|
17
|
-
projectPath: joi.string(),
|
|
18
36
|
privateKeyPath: joi.string().required(),
|
|
19
37
|
type: joi.string().valid('miniProgram', 'miniProgramPlugin', 'miniGame', 'miniGamePlugin'),
|
|
20
|
-
ignores: joi.array().items(joi.string().required())
|
|
38
|
+
ignores: joi.array().items(joi.string().required()),
|
|
39
|
+
robot: joi.number()
|
|
21
40
|
}),
|
|
22
41
|
/** 字节跳动小程序上传配置 */
|
|
23
42
|
tt: joi.object({
|
|
@@ -25,13 +44,23 @@ exports.default = (ctx, pluginOpts) => {
|
|
|
25
44
|
password: joi.string().required()
|
|
26
45
|
}),
|
|
27
46
|
/** 阿里小程序上传配置 */
|
|
28
|
-
alipay: joi.object({
|
|
29
|
-
|
|
47
|
+
alipay: joi.alternatives().try(joi.object({
|
|
48
|
+
appid: joi.string().required(),
|
|
30
49
|
toolId: joi.string().required(),
|
|
31
50
|
privateKeyPath: joi.string().required(),
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
51
|
+
clientType: joi.string().valid('alipay', 'ampe', 'amap', 'genie', 'alios', 'uc', 'quark', 'health', 'koubei', 'alipayiot', 'cainiao', 'alihealth')
|
|
52
|
+
}), joi.object({
|
|
53
|
+
appid: joi.string().required(),
|
|
54
|
+
toolId: joi.string().required(),
|
|
55
|
+
privateKey: joi.string().required(),
|
|
56
|
+
clientType: joi.string().valid('alipay', 'ampe', 'amap', 'genie', 'alios', 'uc', 'quark', 'health', 'koubei', 'alipayiot', 'cainiao', 'alihealth')
|
|
57
|
+
})),
|
|
58
|
+
/** 钉钉小程序配置 */
|
|
59
|
+
dd: joi.object({
|
|
60
|
+
token: joi.string().required(),
|
|
61
|
+
appid: joi.string().required(),
|
|
62
|
+
devToolsInstallPath: joi.string(),
|
|
63
|
+
projectType: joi.string().valid('dingtalk-personal', 'dingtalk-biz-isv', 'dingtalk-biz', 'dingtalk-biz-custom', 'dingtalk-biz-worktab-plugin')
|
|
35
64
|
}),
|
|
36
65
|
/** 百度小程序上传配置 */
|
|
37
66
|
swan: joi.object({
|
|
@@ -39,19 +68,23 @@ exports.default = (ctx, pluginOpts) => {
|
|
|
39
68
|
minSwanVersion: joi.string()
|
|
40
69
|
}),
|
|
41
70
|
version: joi.string(),
|
|
42
|
-
desc: joi.string()
|
|
71
|
+
desc: joi.string(),
|
|
72
|
+
projectPath: joi.string()
|
|
43
73
|
})
|
|
44
|
-
.required();
|
|
74
|
+
.required());
|
|
45
75
|
});
|
|
46
|
-
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
76
|
+
const doAction = async (platform, action, projectPath) => {
|
|
77
|
+
const { printLog, processTypeEnum, fs } = ctx.helper;
|
|
78
|
+
if (typeof platform !== 'string') {
|
|
79
|
+
printLog("error" /* processTypeEnum.ERROR */, '请传入正确的编译类型!');
|
|
80
|
+
process.exit(0);
|
|
81
|
+
}
|
|
82
|
+
// 可通过异步函数获取插件选项
|
|
83
|
+
const pluginOpts = typeof _pluginOpts === 'function' ? await _pluginOpts() : _pluginOpts;
|
|
84
|
+
let ci = null;
|
|
53
85
|
switch (platform) {
|
|
54
86
|
case 'weapp':
|
|
87
|
+
case 'qywx':
|
|
55
88
|
ci = new WeappCI_1.default(ctx, pluginOpts);
|
|
56
89
|
break;
|
|
57
90
|
case 'tt':
|
|
@@ -61,29 +94,74 @@ exports.default = (ctx, pluginOpts) => {
|
|
|
61
94
|
case 'iot':
|
|
62
95
|
ci = new AlipayCI_1.default(ctx, pluginOpts);
|
|
63
96
|
break;
|
|
97
|
+
case 'dd':
|
|
98
|
+
ci = new DingtalkCI_1.default(ctx, pluginOpts);
|
|
99
|
+
break;
|
|
64
100
|
case 'swan':
|
|
65
101
|
ci = new SwanCI_1.default(ctx, pluginOpts);
|
|
66
102
|
break;
|
|
67
|
-
default:
|
|
68
|
-
break;
|
|
69
103
|
}
|
|
70
104
|
if (!ci) {
|
|
71
105
|
printLog("warning" /* processTypeEnum.WARNING */, `"@tarojs/plugin-mini-ci" 插件暂时不支持 "${platform}" 平台`);
|
|
72
106
|
return;
|
|
73
107
|
}
|
|
74
|
-
|
|
75
|
-
|
|
108
|
+
projectPath = projectPath || pluginOpts.projectPath || ctx.paths.outputPath;
|
|
109
|
+
projectPath = path.isAbsolute(projectPath) ? projectPath : path.join(ctx.paths.appPath, projectPath);
|
|
110
|
+
if (!fs.pathExistsSync(projectPath)) {
|
|
111
|
+
printLog("error" /* processTypeEnum.ERROR */, `"projectPath"选项配置的路径不存在:${projectPath}`);
|
|
112
|
+
process.exit(0);
|
|
113
|
+
}
|
|
114
|
+
ci.setProjectPath(projectPath);
|
|
115
|
+
ci.init();
|
|
116
|
+
switch (action) {
|
|
117
|
+
case "open" /* EnumAction.open */:
|
|
76
118
|
ci.open();
|
|
77
119
|
break;
|
|
78
|
-
case
|
|
120
|
+
case "upload" /* EnumAction.upload */:
|
|
79
121
|
ci.upload();
|
|
80
122
|
break;
|
|
81
|
-
case
|
|
123
|
+
case "preview" /* EnumAction.preview */:
|
|
82
124
|
ci.preview();
|
|
83
125
|
break;
|
|
84
|
-
default:
|
|
85
|
-
break;
|
|
86
126
|
}
|
|
127
|
+
};
|
|
128
|
+
// 构建小程序后执行
|
|
129
|
+
if (command === 'build') {
|
|
130
|
+
const onBuildDone = ctx.onBuildComplete || ctx.onBuildFinish;
|
|
131
|
+
onBuildDone(async () => {
|
|
132
|
+
let action = null;
|
|
133
|
+
switch (true) {
|
|
134
|
+
case args["open" /* EnumAction.open */]:
|
|
135
|
+
action = "open" /* EnumAction.open */;
|
|
136
|
+
break;
|
|
137
|
+
case args["preview" /* EnumAction.preview */]:
|
|
138
|
+
action = "preview" /* EnumAction.preview */;
|
|
139
|
+
break;
|
|
140
|
+
case args["upload" /* EnumAction.upload */]:
|
|
141
|
+
action = "upload" /* EnumAction.upload */;
|
|
142
|
+
break;
|
|
143
|
+
}
|
|
144
|
+
if (action) {
|
|
145
|
+
await doAction(ctx.runOpts.options.platform, action, args.projectPath);
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
// 注册独立的命令,可直接上传构建后的代码
|
|
150
|
+
["open" /* EnumAction.open */, "preview" /* EnumAction.preview */, "upload" /* EnumAction.upload */].forEach(action => {
|
|
151
|
+
ctx.registerCommand({
|
|
152
|
+
name: action,
|
|
153
|
+
optionsMap: {
|
|
154
|
+
'--type [typeName]': `${action} type, 支持 weapp/swan/alipay/iot/tt/dd`,
|
|
155
|
+
'--projectPath': `${action} 目录, 不传默认为配置项 'outputRoot' 配置目录`
|
|
156
|
+
},
|
|
157
|
+
synopsisList: [
|
|
158
|
+
`taro ${action} --type weapp`,
|
|
159
|
+
`taro ${action} --type alipay`
|
|
160
|
+
],
|
|
161
|
+
async fn({ options }) {
|
|
162
|
+
doAction(options.type, action, options.projectPath);
|
|
163
|
+
}
|
|
164
|
+
});
|
|
87
165
|
});
|
|
88
166
|
};
|
|
89
167
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AACA,qCAAoC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.compareVersion = void 0;
|
|
4
|
+
function compareVersion(v1, v2) {
|
|
5
|
+
v1 = v1.split('.');
|
|
6
|
+
v2 = v2.split('.');
|
|
7
|
+
const len = Math.max(v1.length, v2.length);
|
|
8
|
+
while (v1.length < len) {
|
|
9
|
+
v1.push('0');
|
|
10
|
+
}
|
|
11
|
+
while (v2.length < len) {
|
|
12
|
+
v2.push('0');
|
|
13
|
+
}
|
|
14
|
+
for (let i = 0; i < len; i++) {
|
|
15
|
+
const num1 = parseInt(v1[i]);
|
|
16
|
+
const num2 = parseInt(v2[i]);
|
|
17
|
+
if (num1 > num2) {
|
|
18
|
+
return 1;
|
|
19
|
+
}
|
|
20
|
+
else if (num1 < num2) {
|
|
21
|
+
return -1;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return 0;
|
|
25
|
+
}
|
|
26
|
+
exports.compareVersion = compareVersion;
|
|
27
|
+
//# sourceMappingURL=compareVersion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compareVersion.js","sourceRoot":"","sources":["../../src/utils/compareVersion.ts"],"names":[],"mappings":";;;AAAA,SAAgB,cAAc,CAAE,EAAE,EAAE,EAAE;IACpC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClB,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAA;IAE1C,OAAO,EAAE,CAAC,MAAM,GAAG,GAAG,EAAE;QACtB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;KACb;IACD,OAAO,EAAE,CAAC,MAAM,GAAG,GAAG,EAAE;QACtB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;KACb;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAE5B,IAAI,IAAI,GAAG,IAAI,EAAE;YACf,OAAO,CAAC,CAAA;SACT;aAAM,IAAI,IAAI,GAAG,IAAI,EAAE;YACtB,OAAO,CAAC,CAAC,CAAA;SACV;KACF;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAvBD,wCAuBC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getNpmPkgSync = exports.resolveNpmSync = void 0;
|
|
4
|
+
const npmCached = {};
|
|
5
|
+
function resolveNpmSync(pluginName, root) {
|
|
6
|
+
const resolvePath = require('resolve');
|
|
7
|
+
if (!npmCached[pluginName]) {
|
|
8
|
+
const res = resolvePath.sync(pluginName, { basedir: root });
|
|
9
|
+
return res;
|
|
10
|
+
}
|
|
11
|
+
return npmCached[pluginName];
|
|
12
|
+
}
|
|
13
|
+
exports.resolveNpmSync = resolveNpmSync;
|
|
14
|
+
function getNpmPkgSync(npmName, root) {
|
|
15
|
+
const npmPath = resolveNpmSync(npmName, root);
|
|
16
|
+
const npmFn = require(npmPath);
|
|
17
|
+
return npmFn;
|
|
18
|
+
}
|
|
19
|
+
exports.getNpmPkgSync = getNpmPkgSync;
|
|
20
|
+
//# sourceMappingURL=npm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"npm.js","sourceRoot":"","sources":["../../src/utils/npm.ts"],"names":[],"mappings":";;;AAAA,MAAM,SAAS,GAAG,EAAE,CAAA;AACpB,SAAgB,cAAc,CAAE,UAAkB,EAAE,IAAI;IACtD,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IACtC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;QAC1B,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3D,OAAO,GAAG,CAAA;KACX;IACD,OAAO,SAAS,CAAC,UAAU,CAAC,CAAA;AAC9B,CAAC;AAPD,wCAOC;AAED,SAAgB,aAAa,CAAE,OAAe,EAAE,IAAY;IAC1D,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC9B,OAAO,KAAK,CAAA;AACd,CAAC;AAJD,sCAIC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateQrcodeImageFile = exports.printQrcode2Terminal = exports.readQrcodeImageContent = void 0;
|
|
4
|
+
const es_1 = require("jimp/es");
|
|
5
|
+
const QRCode = require("qrcode");
|
|
6
|
+
const QrCodeReader = require("qrcode-reader");
|
|
7
|
+
/**
|
|
8
|
+
* 读取出二维码图片中的文本内容
|
|
9
|
+
* @param imagePath 图片路径
|
|
10
|
+
*/
|
|
11
|
+
async function readQrcodeImageContent(imagePath) {
|
|
12
|
+
return new Promise((resolve, reject) => {
|
|
13
|
+
es_1.default.read(imagePath, function (err, image) {
|
|
14
|
+
if (err) {
|
|
15
|
+
reject(err);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const qr = new QrCodeReader();
|
|
19
|
+
qr.callback = function (err, value) {
|
|
20
|
+
if (err) {
|
|
21
|
+
reject(err);
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
resolve(value.result);
|
|
25
|
+
};
|
|
26
|
+
qr.decode(image.bitmap);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
exports.readQrcodeImageContent = readQrcodeImageContent;
|
|
31
|
+
/**
|
|
32
|
+
* 将文本内容转换成二维码输出在控制台上
|
|
33
|
+
* @param content
|
|
34
|
+
*/
|
|
35
|
+
async function printQrcode2Terminal(content) {
|
|
36
|
+
const terminalStr = await QRCode.toString(content, { type: 'terminal' });
|
|
37
|
+
// eslint-disable-next-line no-console
|
|
38
|
+
console.log(terminalStr);
|
|
39
|
+
}
|
|
40
|
+
exports.printQrcode2Terminal = printQrcode2Terminal;
|
|
41
|
+
/**
|
|
42
|
+
* 生成二维码图片到指定目录
|
|
43
|
+
* @param content
|
|
44
|
+
* @param path
|
|
45
|
+
*/
|
|
46
|
+
async function generateQrcodeImageFile(path, content) {
|
|
47
|
+
await QRCode.toFile(path, content, {
|
|
48
|
+
errorCorrectionLevel: 'L',
|
|
49
|
+
type: 'png'
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
exports.generateQrcodeImageFile = generateQrcodeImageFile;
|
|
53
|
+
//# sourceMappingURL=qrcode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qrcode.js","sourceRoot":"","sources":["../../src/utils/qrcode.ts"],"names":[],"mappings":";;;AAAA,gCAA0B;AAC1B,iCAAgC;AAChC,8CAA6C;AAE7C;;;GAGG;AACI,KAAK,UAAU,sBAAsB,CAAE,SAAiB;IAC7D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAC,EAAE;QACpC,YAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,EAAE,KAAK;YACvC,IAAI,GAAG,EAAE;gBACP,MAAM,CAAC,GAAG,CAAC,CAAA;gBACX,OAAM;aACP;YACD,MAAM,EAAE,GAAG,IAAI,YAAY,EAAE,CAAA;YAC7B,EAAE,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE,KAAK;gBAChC,IAAI,GAAG,EAAE;oBACP,MAAM,CAAC,GAAG,CAAC,CAAA;oBACX,OAAM;iBACP;gBACD,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YACvB,CAAC,CAAA;YACD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACzB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAlBD,wDAkBC;AAED;;;GAGG;AACI,KAAK,UAAU,oBAAoB,CAAE,OAAe;IACzD,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAC,CAAC,CAAA;IACvE,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;AAC1B,CAAC;AAJD,oDAIC;AAED;;;;GAIG;AACI,KAAK,UAAU,uBAAuB,CAAG,IAAY,EAAE,OAAe;IAC3E,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAC,OAAO,EAAE;QAChC,oBAAoB,EAAE,GAAG;QACzB,IAAI,EAAE,KAAK;KACZ,CAAC,CAAA;AACJ,CAAC;AALD,0DAKC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tarojs/plugin-mini-ci",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.0-beta.0",
|
|
4
4
|
"description": "Taro 小程序端构建后支持CI(持续集成)的插件",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Taro",
|
|
@@ -24,18 +24,32 @@
|
|
|
24
24
|
"url": "https://github.com/NervJS/taro/issues"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
+
"jimp": "^0.16.1",
|
|
27
28
|
"minimist": "^1.2.5",
|
|
28
|
-
"miniprogram-ci": "^1.
|
|
29
|
-
"qrcode
|
|
29
|
+
"miniprogram-ci": "^1.8.35",
|
|
30
|
+
"qrcode": "^1.5.1",
|
|
31
|
+
"qrcode-reader": "^1.0.4",
|
|
30
32
|
"shelljs": "^0.8.4",
|
|
31
|
-
"@tarojs/service": "3.
|
|
33
|
+
"@tarojs/service": "3.6.0-beta.0"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@types/qrcode": "^1.5.0",
|
|
37
|
+
"@types/shelljs": "^0.8.11"
|
|
32
38
|
},
|
|
33
39
|
"peerDependencies": {
|
|
34
|
-
"
|
|
40
|
+
"dingtalk-miniapp-opensdk": "^1.0.7",
|
|
41
|
+
"minidev": "^1.5.1",
|
|
42
|
+
"tt-ide-cli": "^0.1.13"
|
|
35
43
|
},
|
|
36
44
|
"peerDependenciesMeta": {
|
|
45
|
+
"dingtalk-miniapp-opensdk": {
|
|
46
|
+
"optional": true
|
|
47
|
+
},
|
|
37
48
|
"minidev": {
|
|
38
49
|
"optional": true
|
|
50
|
+
},
|
|
51
|
+
"tt-ide-cli": {
|
|
52
|
+
"optional": true
|
|
39
53
|
}
|
|
40
54
|
},
|
|
41
55
|
"scripts": {
|
package/types/AlipayCI.d.ts
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import BaseCI from './BaseCi';
|
|
2
|
-
|
|
2
|
+
import { AlipayInstance } from './types';
|
|
3
|
+
/** 文档地址: https://opendocs.alipay.com/mini/02q29z */
|
|
3
4
|
export default class AlipayCI extends BaseCI {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
private devToolsInstallPath;
|
|
8
|
-
protected _init(): void;
|
|
9
|
-
open(): void;
|
|
10
|
-
upload(): Promise<void>;
|
|
5
|
+
protected minidev: AlipayInstance;
|
|
6
|
+
init(): void;
|
|
7
|
+
open(): Promise<void>;
|
|
11
8
|
preview(): Promise<void>;
|
|
9
|
+
upload(): Promise<void>;
|
|
12
10
|
}
|
package/types/BaseCi.d.ts
CHANGED
|
@@ -4,16 +4,16 @@ export declare type ProjectType = 'miniProgram' | 'miniGame' | 'miniProgramPlugi
|
|
|
4
4
|
export interface WeappConfig {
|
|
5
5
|
/** 小程序/小游戏项目的 appid */
|
|
6
6
|
appid: string;
|
|
7
|
-
/**
|
|
7
|
+
/** 私钥文件路径,在获取项目属性和上传时用于鉴权使用 */
|
|
8
8
|
privateKeyPath: string;
|
|
9
9
|
/** 微信开发者工具安装路径 */
|
|
10
10
|
devToolsInstallPath?: string;
|
|
11
|
-
/** 上传的小程序的路径(默认 outputPath ) */
|
|
12
|
-
projectPath?: string;
|
|
13
11
|
/** 类型,默认miniProgram 小程序 */
|
|
14
12
|
type?: ProjectType;
|
|
15
13
|
/** 上传需要排除的目录 */
|
|
16
14
|
ignores?: Array<string>;
|
|
15
|
+
/** 指定使用哪一个 ci 机器人,可选值:1 ~ 30 */
|
|
16
|
+
robot?: number;
|
|
17
17
|
}
|
|
18
18
|
/** 头条小程序配置 */
|
|
19
19
|
export interface TTConfig {
|
|
@@ -23,7 +23,7 @@ export interface TTConfig {
|
|
|
23
23
|
password: string;
|
|
24
24
|
}
|
|
25
25
|
/** 终端类型 */
|
|
26
|
-
export declare type
|
|
26
|
+
export declare type AlipayClientType =
|
|
27
27
|
/** 支付宝 */ 'alipay' |
|
|
28
28
|
/** AMPE */ 'ampe' |
|
|
29
29
|
/** 高德 */ 'amap' |
|
|
@@ -31,27 +31,46 @@ export declare type ClientType =
|
|
|
31
31
|
/** ALIOS */ 'alios' |
|
|
32
32
|
/** UC */ 'uc' |
|
|
33
33
|
/** 夸克 */ 'quark' |
|
|
34
|
-
/** 淘宝 */ 'taobao' |
|
|
35
34
|
/** 口碑 */ 'koubei' |
|
|
36
35
|
/** loT */ 'alipayiot' |
|
|
37
36
|
/** 菜鸟 */ 'cainiao' |
|
|
38
|
-
/** 阿里健康 */ 'alihealth'
|
|
37
|
+
/** 阿里健康(医蝶谷) */ 'alihealth' |
|
|
38
|
+
/** 阿里医院 */ 'health';
|
|
39
39
|
/** 支付宝系列小程序配置 */
|
|
40
40
|
export interface AlipayConfig {
|
|
41
|
-
/** 小程序
|
|
42
|
-
|
|
41
|
+
/** 小程序appid */
|
|
42
|
+
appid: string;
|
|
43
43
|
/** 工具id */
|
|
44
44
|
toolId: string;
|
|
45
|
+
/** 私钥文件路径,在获取项目属性和上传时用于鉴权使用(privateKeyPath和privateKey之间必须要填写其中一个) */
|
|
46
|
+
privateKeyPath: string;
|
|
47
|
+
/** 私钥文本内容,在获取项目属性和上传时用于鉴权使用(privateKeyPath和privateKey之间必须要填写其中一个) */
|
|
48
|
+
privateKey: string;
|
|
45
49
|
/** 小程序开发者工具安装路径 */
|
|
46
50
|
devToolsInstallPath?: string;
|
|
47
|
-
/** 私钥相对路径 */
|
|
48
|
-
privateKeyPath: string;
|
|
49
|
-
/** 服务代理地址(可选) */
|
|
50
|
-
proxy?: string;
|
|
51
|
-
/** 目标项目目录, 默认为 outputPath(可选) */
|
|
52
|
-
project?: string;
|
|
53
51
|
/** 上传的终端, 默认alipay */
|
|
54
|
-
clientType?:
|
|
52
|
+
clientType?: AlipayClientType;
|
|
53
|
+
}
|
|
54
|
+
export declare type DingtalkProjectType =
|
|
55
|
+
/** 第三方个人应用 */
|
|
56
|
+
'dingtalk-personal' |
|
|
57
|
+
/** 第三方企业应用 */
|
|
58
|
+
'dingtalk-biz-isv' |
|
|
59
|
+
/** 企业内部应用 */
|
|
60
|
+
'dingtalk-biz' |
|
|
61
|
+
/** 企业定制应用 */
|
|
62
|
+
'dingtalk-biz-custom' |
|
|
63
|
+
/** 工作台组件 */
|
|
64
|
+
'dingtalk-biz-worktab-plugin';
|
|
65
|
+
export interface DingtalkConfig {
|
|
66
|
+
/** 钉钉小程序appid,即钉钉开放平台后台应用管理的 MiniAppId 选项(必填) */
|
|
67
|
+
appid: string;
|
|
68
|
+
/** 令牌,从钉钉后台获取 */
|
|
69
|
+
token: string;
|
|
70
|
+
/** 小程序开发者工具安装路径 */
|
|
71
|
+
devToolsInstallPath?: string;
|
|
72
|
+
/** 钉钉应用类型, 默认为:'dingtalk-biz' (企业内部应用) */
|
|
73
|
+
projectType?: DingtalkProjectType;
|
|
55
74
|
}
|
|
56
75
|
/** 百度小程序配置 */
|
|
57
76
|
export interface SwanConfig {
|
|
@@ -59,18 +78,24 @@ export interface SwanConfig {
|
|
|
59
78
|
token: string;
|
|
60
79
|
/** 最低基础库版本, 不传默认为 3.350.6 */
|
|
61
80
|
minSwanVersion?: string;
|
|
81
|
+
/** 小程序开发者工具安装路径 */
|
|
82
|
+
devToolsInstallPath?: string;
|
|
62
83
|
}
|
|
63
84
|
export interface CIOptions {
|
|
64
85
|
/** 发布版本号,默认取 package.json 文件的 taroConfig.version 字段 */
|
|
65
|
-
version
|
|
86
|
+
version?: string;
|
|
66
87
|
/** 版本发布描述, 默认取 package.json 文件的 taroConfig.desc 字段 */
|
|
67
|
-
desc
|
|
88
|
+
desc?: string;
|
|
89
|
+
/** 目标项目目录,对所有小程序生效(不传默认取 outputRoot 字段 ) */
|
|
90
|
+
projectPath?: string;
|
|
68
91
|
/** 微信小程序CI配置, 官方文档地址:https://developers.weixin.qq.com/miniprogram/dev/devtools/ci.html */
|
|
69
92
|
weapp?: WeappConfig;
|
|
70
93
|
/** 头条小程序配置, 官方文档地址:https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/developer-instrument/development-assistance/ide-order-instrument */
|
|
71
94
|
tt?: TTConfig;
|
|
72
95
|
/** 支付宝系列小程序配置,官方文档地址: https://opendocs.alipay.com/mini/miniu/api */
|
|
73
96
|
alipay?: AlipayConfig;
|
|
97
|
+
/** 钉钉小程序配置 */
|
|
98
|
+
dd?: DingtalkConfig;
|
|
74
99
|
/** 百度小程序配置, 官方文档地址:https://smartprogram.baidu.com/docs/develop/devtools/commandtool/ */
|
|
75
100
|
swan?: SwanConfig;
|
|
76
101
|
}
|
|
@@ -83,9 +108,32 @@ export default abstract class BaseCI {
|
|
|
83
108
|
protected version: string;
|
|
84
109
|
/** 当前发布内容的描述 */
|
|
85
110
|
protected desc: string;
|
|
111
|
+
/** 命令要操作的项目目录 */
|
|
112
|
+
protected projectPath: string;
|
|
86
113
|
constructor(ctx: IPluginContext, pluginOpts: CIOptions);
|
|
87
|
-
|
|
88
|
-
|
|
114
|
+
setProjectPath(path: string): void;
|
|
115
|
+
/** 执行预览命令后触发 */
|
|
116
|
+
triggerPreviewHooks(content: {
|
|
117
|
+
success: boolean;
|
|
118
|
+
data: {
|
|
119
|
+
platform: string;
|
|
120
|
+
qrCodeLocalPath: string;
|
|
121
|
+
qrCodeContent: string;
|
|
122
|
+
};
|
|
123
|
+
error?: Error;
|
|
124
|
+
}): Promise<void>;
|
|
125
|
+
/** 执行上传命令后触发 */
|
|
126
|
+
triggerUploadHooks(content: {
|
|
127
|
+
success: boolean;
|
|
128
|
+
data: {
|
|
129
|
+
platform: string;
|
|
130
|
+
qrCodeLocalPath: string;
|
|
131
|
+
qrCodeContent: string;
|
|
132
|
+
};
|
|
133
|
+
error?: Error;
|
|
134
|
+
}): Promise<void>;
|
|
135
|
+
/** 初始化函数,new实例化后会被立即调用一次 */
|
|
136
|
+
abstract init(): void;
|
|
89
137
|
/** 打开小程序项目 */
|
|
90
138
|
abstract open(): any;
|
|
91
139
|
/** 上传小程序 */
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import BaseCI from './BaseCi';
|
|
2
|
+
import { DingTalk } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* 钉钉小程序CI https://github.com/open-dingtalk/dingtalk-design-cli/blob/develop/packages/opensdk/package.json
|
|
5
|
+
*/
|
|
6
|
+
export default class DingtalkCI extends BaseCI {
|
|
7
|
+
protected dingtalkSDK: DingTalk.MiniAppOpenSDK;
|
|
8
|
+
private entryPage;
|
|
9
|
+
init(): void;
|
|
10
|
+
open(): Promise<void>;
|
|
11
|
+
preview(): Promise<void>;
|
|
12
|
+
upload(): Promise<void>;
|
|
13
|
+
}
|
package/types/SwanCI.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import BaseCI from './BaseCi';
|
|
2
2
|
export default class SwanCI extends BaseCI {
|
|
3
3
|
private swanBin;
|
|
4
|
-
|
|
5
|
-
open(): void
|
|
6
|
-
upload(): Promise<void>;
|
|
4
|
+
init(): void;
|
|
5
|
+
open(): Promise<void>;
|
|
7
6
|
preview(): Promise<void>;
|
|
7
|
+
upload(): Promise<void>;
|
|
8
8
|
}
|
package/types/TTCI.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import BaseCI from './BaseCi';
|
|
2
|
+
import { TTInstance } from './types';
|
|
2
3
|
export default class TTCI extends BaseCI {
|
|
3
|
-
tt:
|
|
4
|
-
|
|
5
|
-
_beforeCheck(): Promise<
|
|
6
|
-
open(): void
|
|
4
|
+
tt: TTInstance;
|
|
5
|
+
init(): void;
|
|
6
|
+
_beforeCheck(): Promise<void>;
|
|
7
|
+
open(): Promise<void>;
|
|
7
8
|
preview(): Promise<void>;
|
|
8
9
|
upload(): Promise<void>;
|
|
9
10
|
}
|
package/types/WeappCI.d.ts
CHANGED
package/types/hooks.d.ts
ADDED
package/types/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IPluginContext } from '@tarojs/service';
|
|
2
2
|
import { CIOptions } from './BaseCi';
|
|
3
3
|
export { CIOptions } from './BaseCi';
|
|
4
|
-
declare const _default: (ctx: IPluginContext,
|
|
4
|
+
declare const _default: (ctx: IPluginContext, _pluginOpts: CIOptions | (() => CIOptions)) => void;
|
|
5
5
|
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function compareVersion(v1: any, v2: any): 0 | 1 | -1;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 读取出二维码图片中的文本内容
|
|
3
|
+
* @param imagePath 图片路径
|
|
4
|
+
*/
|
|
5
|
+
export declare function readQrcodeImageContent(imagePath: string): Promise<string>;
|
|
6
|
+
/**
|
|
7
|
+
* 将文本内容转换成二维码输出在控制台上
|
|
8
|
+
* @param content
|
|
9
|
+
*/
|
|
10
|
+
export declare function printQrcode2Terminal(content: string): Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* 生成二维码图片到指定目录
|
|
13
|
+
* @param content
|
|
14
|
+
* @param path
|
|
15
|
+
*/
|
|
16
|
+
export declare function generateQrcodeImageFile(path: string, content: string): Promise<void>;
|
package/dist/QRCode.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
/**
|
|
4
|
-
* 生产二维码输出到控制台
|
|
5
|
-
* @param url 链接地址
|
|
6
|
-
*/
|
|
7
|
-
function generateQrCode(url) {
|
|
8
|
-
require('qrcode-terminal').generate(url, { small: true });
|
|
9
|
-
}
|
|
10
|
-
exports.default = generateQrCode;
|
|
11
|
-
//# sourceMappingURL=QRCode.js.map
|