js
复制代码
const path = require('path');
const fs = require('fs');
const ci = require('miniprogram-ci');
// cd projectRoot && node cli/index.js type=preview appId=your_app_id version=1.0.0 desc="your description"
const rootPath = path.resolve(__dirname, '..'); // cli/ 的上一级就是项目根目录
const argMap = {
type: 'preview',
appId: 'your_app_id',
version: '1.0.0',
desc: 'hello ci',
};
process.argv.slice(2).forEach(arg => {
const [key, value] = arg.split('=');
argMap[key] = value;
});
(async () => {
console.log('ci with args:', argMap);
const { type, appId, version, desc } = argMap;
const privateKeyPath = path.join(__dirname, `private.${appId}.key`);
// previews 目录需要存在,或者直接在根目录下也可以
const qrcodeOutputDest = path.join(__dirname, `../previews/preview-${new Date().getTime()}.png`);
const project = new ci.Project({
appid: appId, // 替换为你的实际AppID
type: 'miniProgram',
projectPath: rootPath, // 指向项目根目录
privateKeyPath, // 私钥在cli目录下
ignores: [
'node_modules/**',
'.git/**',
'cli/**',
] // 忽略cli目录
});
if (type === 'upload') {
console.log('start upload')
const uploadResult = await ci.upload({
project,
version,
desc,
setting: {
es6: true,
},
onProgressUpdate: console.log,
})
console.log('done upload', uploadResult)
} else {
console.log('start preview')
const previewResult = await ci.preview({
project,
desc, // 此备注将显示在"小程序助手"开发版列表中
setting: {
es6: true,
},
qrcodeFormat: 'image',
qrcodeOutputDest,
onProgressUpdate: console.log,
// pagePath: 'pages/index/index', // 预览页面
// searchQuery: 'a=1&b=2', // 预览参数 [注意!]这里的`&`字符在命令行中应写成转义字符`\&`
})
console.log('done preview', previewResult)
}
})()