miniprogram-ci
介绍
miniprogram-ci 是从微信开发者工具中抽离的关于小程序/小游戏项目代码的编译模块。
使用前需要使用小程序管理员身份访问”微信公众平台-开发-开发设置”后下载代码上传密钥,并配置 IP 白名单,才能进行上传、预览操作。
功能
- 上传代码,对应小程序开发者工具的上传
- 预览代码,对应小程序开发者工具的预览
- 构建 npm,对应小程序开发者工具的: 菜单-工具-构建npm
- 上传云开发云函数代码,对应小程序开发者工具的上传云函数能力
- 上传云托管代码,对应小程序开发者工具的上传云托管能力
- 上传云存储/静态托管文件,对应小程序开发者工具-云开发-云存储和静态托管文件管理
- 代理,配置 miniprogram-ci 的网络请求代理方式
- 支持获取最近上传版本的 sourceMap
- 支持 node 脚本调用方式和 命令行 调用方式
脚本调用
npm i miniprogram-ci --save
基本使用
```javascript const ci = require(‘miniprogram-ci’) let { wxVersion: version, wxDesc: desc } = require(‘./package.json’)
if (!version) version = ‘v1.0.0’ if (!desc) desc = new Date() + ‘上传’
const projectPath = ‘/workspace/railwaytrucks’
/**
- 获取环境参数
- type 操作类型 preview | publish
- version:版本号 上传操作必填
- desc:版本描述 上传操作必填
- appid:应用id,测试人员有时需要切换应用Id
- buildId: 构建id */
const buildId = new Date().getTime();;
const appid = ‘wx076fbebe4d9fcf11’;
if(!appid){
console.error(‘appid不能为空!!!’);
process.exit(1);
}
// 微信小程序的私有key文件存储路径,每次新增appid时,需要找运维加私有key
const privateKeyPath = ./private.${appid}.key
;
// 请求参数 const reqParams = { appid, type: ‘miniProgram’, projectPath, privateKeyPath, ignores: [‘node_modules/*/‘, ‘yarn.lock’, ‘.*’], }; // 上传文件处理设置参数 const uploadParams = { es6: true, // “es6 转 es5” es7: true, // “增强编译” minify: true, // “样式自动补全” codeProtect: true, // “代码保护” autoPrefixWXSS: true, // “样式自动补全” };
const project = new ci.Project({ …reqParams });
// 生成二维码
(async () => {
const previewResult = await ci.preview({
project,
desc: ‘预览’, // 此备注将显示在“小程序助手”开发版列表中
setting: uploadParams,
qrcodeFormat: ‘image’,
qrcodeOutputDest: ./qrcode-${buildId}.jpg
,
onProgressUpdate: console.log,
// pagePath: ‘pages/index/index’, // 预览页面
// searchQuery: ‘a=1&b=2’, // 预览参数 [注意!]这里的&
字符在命令行中应写成转义字符\&
});
})();
Tips
- 微信小程序miniprogram-ci:https://developers.weixin.qq.com/miniprogram/dev/devtools/ci.html
- miniprogram-ci 与 inquirer 结合,命令行交互,自定义上传参数
document.designMode = "on|off"
设置文档是否可编辑