miniprogram-ci

介绍

miniprogram-ci 是从微信开发者工具中抽离的关于小程序/小游戏项目代码的编译模块。
使用前需要使用小程序管理员身份访问”微信公众平台-开发-开发设置”后下载代码上传密钥,并配置 IP 白名单,才能进行上传、预览操作。

功能

  1. 上传代码,对应小程序开发者工具的上传
  2. 预览代码,对应小程序开发者工具的预览
  3. 构建 npm,对应小程序开发者工具的: 菜单-工具-构建npm
  4. 上传云开发云函数代码,对应小程序开发者工具的上传云函数能力
  5. 上传云托管代码,对应小程序开发者工具的上传云托管能力
  6. 上传云存储/静态托管文件,对应小程序开发者工具-云开发-云存储和静态托管文件管理
  7. 代理,配置 miniprogram-ci 的网络请求代理方式
  8. 支持获取最近上传版本的 sourceMap
  9. 支持 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