miniprogram-ci简介

miniprogram-ci 是从微信开发者工具中抽离的关于小程序/小游戏项目代码的编译模块。

开发者可不打开小程序开发者工具,独立使用 miniprogram-ci 进行小程序代码的上传、预览等操作。

https://www.npmjs.com/package/miniprogram-ci

使用前提

平台设置

使用 miniprogram-ci 前应在微信公众平台登录小程序,访问“开发-开发管理-开发设置”后下载“代码上传密钥”,并配置 IP 白名单。

开发者可选择打开 IP 白名单,打开后只有白名单中的 IP 才能调用相关接口。

代码上传密钥拥有预览、上传代码的权限,密钥不会明文存储在微信公众平台上,一旦遗失必须重置,请开发者妥善保管

脚本调用

npm install miniprogram-ci --save

项目对象

const ci = require('miniprogram-ci')
// 注意: new ci.Project 调用时,请确保项目代码已经是完整的,避免编译过程出现找不到文件的报错。
const project = new ci.Project({appid: 'wxsomeappid',type: 'miniProgram',projectPath: 'the/project/path',privateKeyPath: 'the/privatekey/path',ignores: ['node_modules/**/*'],
})
类型 必填 说明
appid string 合法的小程序/小游戏 appid
projectPath string 项目路径
privateKeyPath string 私钥的路径
type string 显示指明当前的项目类型, 默认为 miniProgram,有效值 miniProgram/miniProgramPlugin/miniGame/miniGamePlugin
ignores string[] 指定需要排除的规则

编译参数

类型 说明
es6 boolean 对应小程序开发者工具的 “es6 转 es5”
es7 boolean 对应小程序开发者工具的 “增强编译”
minifyJS boolean 压缩 JS 代码
minifyWXML boolean 压缩 WXML 代码
minifyWXSS boolean 压缩 WXSS 代码
minify boolean 压缩所有代码,对应小程序开发者工具的 “压缩代码”
codeProtect boolean 对应小程序开发者工具的 “代码保护”
autoPrefixWXSS boolean 对应小程序开发者工具的 “样式自动补全”

功能

上传

const ci = require('miniprogram-ci')
;(async () => {const project = new ci.Project({appid: 'wxsomeappid',type: 'miniProgram',projectPath: 'the/project/path',privateKeyPath: 'the/path/to/privatekey',ignores: ['node_modules/**/*'],})const uploadResult = await ci.upload({project,version: '1.1.1',desc: 'hello',setting: {es6: true,},onProgressUpdate: console.log,})console.log(uploadResult)
})()

参数

类型 必填 说明
project IProject #项目对象
version string 自定义版本号
desc string 自定义备注
setting object #编译设置
onProgressUpdate function 进度更新监听函数
robot number 指定使用哪一个 ci 机器人,可选值:1 ~ 30
threads number 指定本地编译过程中开启的线程数

返回

类型 必填 说明
subPackageInfo Array<{name:string, size:number}> 小程序包信息, name 为 FULL 时表示整个小程序包, name 为 APP 时表示小程序主包,其他情况都表示分包
pluginInfo Array<{pluginProviderAppid:string, version: string, size:number}> 小程序插件信息
devPluginId string 插件开发模式下,上传版本的插件 id

预览

const ci = require('miniprogram-ci')
;(async () => {const project = new ci.Project({appid: 'wxsomeappid',type: 'miniProgram',projectPath: 'the/project/path',privateKeyPath: 'the/path/to/privatekey',ignores: ['node_modules/**/*'],})const previewResult = await ci.preview({project,desc: 'hello', // 此备注将显示在“小程序助手”开发版列表中setting: {es6: true,},qrcodeFormat: 'image',qrcodeOutputDest: '/path/to/qrcode/file/destination.jpg',onProgressUpdate: console.log,// pagePath: 'pages/index/index', // 预览页面// searchQuery: 'a=1&b=2',  // 预览参数 [注意!]这里的`&`字符在命令行中应写成转义字符`\&`})console.log(previewResult)
})()

参数

类型 必填 说明
project IProject #项目对象
desc string 自定义备注,将显示在“小程序助手”开发版列表中
setting object #编译设置
onProgressUpdate function 进度更新监听函数
robot number 指定使用哪一个 ci 机器人,可选值:1 ~ 30
qrcodeFormat string 返回二维码文件的格式 “image” 或 “base64”, 默认值 “terminal” 供调试用
qrcodeOutputDest string 二维码文件保存路径
pagePath string 预览页面路径
searchQuery string 预览页面路径启动参数
scene number 默认值 1011,具体含义见场景值列表

返回

类型 必填 说明
subPackageInfo Array<{name:string, size:number}> 小程序包信息, name 为 __FULL__ 时表示整个小程序包, name 为 __APP__ 时表示小程序主包,其他情况都表示分包
pluginInfo Array<{pluginProviderAppid:string, version: string, 小程序插件信息

获取本地编译后的代码包

当怀疑代码大小发生变化,不符合预期时,可以调用这个方法,检查一下最终上传到微信后台服务器时代码包里的文件内容。

const ci = require('miniprogram-ci')
const path = require('path')
;(async () => {const project = new ci.Project({appid: 'wxsomeappid',type: 'miniProgram',projectPath: 'the/project/path',privateKeyPath: 'the/path/to/privatekey',ignores: ['node_modules/**/*'],})// zip 文件保存位置const saveZipPath = path.join(__dirname, 'compiledResult.zip')const compiledResult = await ci.getCompiledResult({project,desc: 'hello',setting: {es6: true,},qrcodeFormat: 'image',qrcodeOutputDest: '/path/to/qrcode/file/destination.jpg',onProgressUpdate: console.log,// pagePath: 'pages/index/index', // 预览页面// searchQuery: 'a=1&b=2',  // 预览参数 [注意!]这里的`&`字符在命令行中应写成转义字符`\&`// scene: 1011, // 场景值}, saveZipPath)console.log(compiledResult) // compiledResult 为 Record<string, string | Buffer> 类型
})()

miniprogram-ci官方文档相关推荐

  1. K8S-网络模型、POD/RC/SVC YAML 语法官方文档

    2019独角兽企业重金招聘Python工程师标准>>> K8S-网络模型.POD/RC/SVC YAML 语法官方文档 博客分类: Kubernetes K8S-网络模型.POD/R ...

  2. Hyperledger Fabric 2.0 官方文档中文版 第6章 教程(上)

    Hyperledger Fabric 2.0 官方文档中文版第6章 教程上 总目录 6.教程(上) 将智能合约部署到通道 启动网络 Logspout设置 打包智能合约 安装链码包 批准链码定义 将链码 ...

  3. Sklearn官方文档中文整理4——随机梯度下降和最近邻篇

    Sklearn官方文档中文整理4--随机梯度下降和最近邻篇 1. 监督学习 1.5. 随机梯度下降 1.5.1. 分类[linear_model.SGDClassifier] 1.5.2. 回归[li ...

  4. Sklearn官方文档中文整理6——交叉分解,朴素贝叶斯和决策树篇

    Sklearn官方文档中文整理6--交叉分解,朴素贝叶斯和决策树篇 1. 监督学习 1.8. 交叉分解[cross_decomposition.PLSRegression,cross_decompos ...

  5. 微信小程序多选复选框checkbox。微信小程序官方文档bug

    由于个人从事微信小程序开发相关工作,在查询相关文档时(微信官方文档-小程序-表单组件-checkbox),发现示例代码中的一处错误. 问题出现原因:根据文档示例代码提示,设置本人本地代码,却发现下图红 ...

  6. 微信开发官方文档部分整理

    微信开发官方文档(微信所有功能开发文档的入口) https://developers.weixin.qq.com/miniprogram/dev/framework/ 微信支付 微信支付开发文档 ht ...

  7. 微信小程序学习记录【1】【项目结构构成、官方文档构成、基本配置】

    微信小程序学习记录[1][项目结构构成.基本配置]文章目录 项目结构构成 官方文档结构 基本配置 1. 小程序配置 1.1 app.json 1.2 page(页面名).json 1.3 sitema ...

  8. 微信小程序入门:初步了解官方文档(循环、视图容器、icon、image)

    今天是正式学习微信小程序的第一天,学习微信小程序先从了解官方文档开始吧. 这一节开始学习微信小程序官方文档中的for循环.视图容器.icon.image等. 打开index文件夹下的index.wxm ...

  9. 微信小程序(note1:官方文档)

    官方文档 关于微信小程序这块儿,主要练习怎么查看文档,因为微信开发文档特别全面,没有必要再额外写什么笔记. 但是对小程序开发文档的熟练度是非常重要的,所以此系列笔记,着重于常用的组件.接口- 微信小程 ...

  10. 微信小程序如何实现支付功能?看官方文档头疼(使用云函数的方式操作)

    先来个效果图  ^_^ 微信支付功能,个人公众号是没有办法进行开发支付功能的,需要是使用非个人公众号进行注册(如:营业执照等,可以去淘宝购买一个也行 大概500左右) 公众平台的配置可以参考文档,这里 ...

最新文章

  1. nginx自签SSL证书和Symantec签发证书使用
  2. 如何成为数据科学家_成为数据科学家需要了解什么
  3. 找出1到N中缺少的數?
  4. Oracle递归查询示例分析
  5. 工作实践 之 Google Guava 工具集的使用 ,提高效率
  6. Android版本升级同时Sqlite数据库的升级及之前数据的保留-转
  7. 在mac中配置apache+php5.3+mysql的环境,修改hosts
  8. Web性能瓶颈查找经验总结
  9. Parallels中使用加密狗读取文件出现错误
  10. 关于ping是用的TCP还是UDP的争论
  11. 用数字ic产生正弦波的仿真尝试。
  12. COMSOL Multiphysics多物理场仿真技术与应用
  13. 计算机文件夹加密文件,电脑文件夹怎么加密,制作隐私的加密文件夹软件
  14. Laya1.0Matter.js案例之牛顿摆
  15. 前端之搭建简单的Node服务器
  16. mysql中like与rlike_Hive中rlike,like,notlike区别及使用
  17. 基于稀疏表示的分类方法 Sparse Representation based Classification Method
  18. 每日一狗 · 惠比特犬
  19. 在配有通道的计算机系统中,用户程序需要输出时,引起的中断是,计算机系统结构自考2009年7月真题...
  20. TFN F7 M1 光时域反射仪 多模OTDR 光纤测试仪 高精度 触摸屏 波长850/1300nm

热门文章

  1. 19级HPU算法协会公开课第一期:【基础算法1】 题解
  2. 从oracle到mysql模型转换的自动化实现
  3. vim-plug插件安装
  4. 我在低处仰望,梦过尘世幻想。
  5. 新闻稿标题写作中的五大技巧
  6. BT5 CDLinux+U盘启动 破解无线网络
  7. php版本微信公众号开发
  8. 如何查看自己电脑的本地IP地址
  9. c语言程序框图示范,C语言程序框图courseware.ppt
  10. unity 更改模型的中心点