miniprogram-ci官方文档
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官方文档相关推荐
- K8S-网络模型、POD/RC/SVC YAML 语法官方文档
2019独角兽企业重金招聘Python工程师标准>>> K8S-网络模型.POD/RC/SVC YAML 语法官方文档 博客分类: Kubernetes K8S-网络模型.POD/R ...
- Hyperledger Fabric 2.0 官方文档中文版 第6章 教程(上)
Hyperledger Fabric 2.0 官方文档中文版第6章 教程上 总目录 6.教程(上) 将智能合约部署到通道 启动网络 Logspout设置 打包智能合约 安装链码包 批准链码定义 将链码 ...
- Sklearn官方文档中文整理4——随机梯度下降和最近邻篇
Sklearn官方文档中文整理4--随机梯度下降和最近邻篇 1. 监督学习 1.5. 随机梯度下降 1.5.1. 分类[linear_model.SGDClassifier] 1.5.2. 回归[li ...
- Sklearn官方文档中文整理6——交叉分解,朴素贝叶斯和决策树篇
Sklearn官方文档中文整理6--交叉分解,朴素贝叶斯和决策树篇 1. 监督学习 1.8. 交叉分解[cross_decomposition.PLSRegression,cross_decompos ...
- 微信小程序多选复选框checkbox。微信小程序官方文档bug
由于个人从事微信小程序开发相关工作,在查询相关文档时(微信官方文档-小程序-表单组件-checkbox),发现示例代码中的一处错误. 问题出现原因:根据文档示例代码提示,设置本人本地代码,却发现下图红 ...
- 微信开发官方文档部分整理
微信开发官方文档(微信所有功能开发文档的入口) https://developers.weixin.qq.com/miniprogram/dev/framework/ 微信支付 微信支付开发文档 ht ...
- 微信小程序学习记录【1】【项目结构构成、官方文档构成、基本配置】
微信小程序学习记录[1][项目结构构成.基本配置]文章目录 项目结构构成 官方文档结构 基本配置 1. 小程序配置 1.1 app.json 1.2 page(页面名).json 1.3 sitema ...
- 微信小程序入门:初步了解官方文档(循环、视图容器、icon、image)
今天是正式学习微信小程序的第一天,学习微信小程序先从了解官方文档开始吧. 这一节开始学习微信小程序官方文档中的for循环.视图容器.icon.image等. 打开index文件夹下的index.wxm ...
- 微信小程序(note1:官方文档)
官方文档 关于微信小程序这块儿,主要练习怎么查看文档,因为微信开发文档特别全面,没有必要再额外写什么笔记. 但是对小程序开发文档的熟练度是非常重要的,所以此系列笔记,着重于常用的组件.接口- 微信小程 ...
- 微信小程序如何实现支付功能?看官方文档头疼(使用云函数的方式操作)
先来个效果图 ^_^ 微信支付功能,个人公众号是没有办法进行开发支付功能的,需要是使用非个人公众号进行注册(如:营业执照等,可以去淘宝购买一个也行 大概500左右) 公众平台的配置可以参考文档,这里 ...
最新文章
- nginx自签SSL证书和Symantec签发证书使用
- 如何成为数据科学家_成为数据科学家需要了解什么
- 找出1到N中缺少的數?
- Oracle递归查询示例分析
- 工作实践 之 Google Guava 工具集的使用 ,提高效率
- Android版本升级同时Sqlite数据库的升级及之前数据的保留-转
- 在mac中配置apache+php5.3+mysql的环境,修改hosts
- Web性能瓶颈查找经验总结
- Parallels中使用加密狗读取文件出现错误
- 关于ping是用的TCP还是UDP的争论
- 用数字ic产生正弦波的仿真尝试。
- COMSOL Multiphysics多物理场仿真技术与应用
- 计算机文件夹加密文件,电脑文件夹怎么加密,制作隐私的加密文件夹软件
- Laya1.0Matter.js案例之牛顿摆
- 前端之搭建简单的Node服务器
- mysql中like与rlike_Hive中rlike,like,notlike区别及使用
- 基于稀疏表示的分类方法 Sparse Representation based Classification Method
- 每日一狗 · 惠比特犬
- 在配有通道的计算机系统中,用户程序需要输出时,引起的中断是,计算机系统结构自考2009年7月真题...
- TFN F7 M1 光时域反射仪 多模OTDR 光纤测试仪 高精度 触摸屏 波长850/1300nm