logo
5
3
WeChat Login
docs: 优化文档

微信小程序 CI 插件

从微信开发者工具中抽取小程序/小游戏项目代码的编译模块,实现一键构建 npm / 预览 / 上传小程序

支持 云原生构建GitHub Actions 等 CI/CD 平台。

前置准备

使用前需要:

  1. 使用小程序管理员身份访问 微信公众平台 → 开发 → 开发设置
  2. 下载代码上传密钥
  3. 配置 IP 白名单(或关闭白名单限制)

支持的模式

通过 mode 参数指定执行模式,支持多个模式用逗号分隔:

模式说明
upload上传代码(默认)
preview预览并生成二维码
packNpm构建 NPM
packNpmManually手动构建 NPM
getDevSourceMap获取 SourceMap

参数说明

基础参数

参数必填说明
appid小程序 AppID
projectPath项目路径(project.config.json 所在目录)
privateKeyPath✓*私钥文件路径
privateKey✓*私钥内容(与 privateKeyPath 二选一)
type项目类型:miniProgram / miniProgramPlugin / miniGame / miniGamePlugin,默认 miniProgram
ignores排除的文件规则,逗号分隔,如 test/**/*,docs/**/*

任务参数

参数必填说明
versionupload 时必填版本号
desc版本备注
robotgetDevSourceMap 时必填CI 机器人编号(1-30)
threads编译线程数

预览参数

参数说明
qrcodeFormat二维码格式:image / base64 / terminal,默认 image
qrcodeOutputDest二维码保存路径,默认 ./qrcode.jpg
pagePath预览页面路径
searchQuery预览页面启动参数
scene场景值,默认 1011

编译设置

参数说明
es6ES6 转 ES5
es7增强编译
minify压缩所有代码
minifyJS压缩 JS
minifyWXML压缩 WXML
minifyWXSS压缩 WXSS
codeProtect代码保护
autoPrefixWXSS样式自动补全
disableUseStrict禁用严格模式
compileWorklet编译 worklet
useProjectConfig使用项目配置中的编译设置

NPM 构建参数

参数说明
packNpmIgnores构建 npm 时排除的包名,逗号分隔
packageJsonPathpackNpmManually 时必填,package.json 路径
miniprogramNpmDistDirpackNpmManually 时必填,构建产物目标目录

其他参数

参数说明
uploadResultOutputDest上传结果保存路径
sourceMapSavePathSourceMap 保存路径(getDevSourceMap 时必填)

在云原生构建上使用

main: push: - stages: - name: miniprogram-ci image: tencentcom/miniprogram-ci settings: # 要执行的操作 mode: upload # 小程序 AppID appid: wxsomeappid # 小程序源码目录(project.config.json 所在目录) projectPath: ./ # 私钥文件路径 privateKeyPath: ./private.wxsomeappid.key # 版本号 version: v1.0.0 # 版本备注 desc: CI 自动上传 # ES6 转 ES5 es6: true # 压缩代码 minify: true

构建 NPM 后上传

main: push: - stages: - name: miniprogram-ci image: tencentcom/miniprogram-ci settings: # 要执行的操作:先构建 NPM,再上传 mode: packNpm,upload # 小程序 AppID appid: wxsomeappid # 小程序源码目录(project.config.json 所在目录) projectPath: ./ # 私钥文件路径 privateKeyPath: ./private.wxsomeappid.key # 版本号 version: v1.0.0

预览模式

main: push: - stages: - name: miniprogram-ci image: tencentcom/miniprogram-ci settings: # 要执行的操作:预览 mode: preview # 小程序 AppID appid: wxsomeappid # 小程序源码目录(project.config.json 所在目录) projectPath: ./ # 私钥文件路径 privateKeyPath: ./private.wxsomeappid.key # 二维码保存路径 qrcodeOutputDest: ./preview-qrcode.jpg

在 GitHub Actions 上使用

name: CI on: push: branches: - main jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@master - name: Upload MiniProgram uses: docker://tencentcom/miniprogram-ci:latest env: # 要执行的操作 PLUGIN_MODE: upload # 小程序 AppID PLUGIN_APPID: wxsomeappid # 小程序源码目录(project.config.json 所在目录) PLUGIN_PROJECTPATH: ./ # 私钥内容 PLUGIN_PRIVATEKEY: ${{ secrets.MINIPROGRAM_PRIVATE_KEY }} # 版本号 PLUGIN_VERSION: v1.0.0 # 版本备注 PLUGIN_DESC: CI 自动上传 # ES6 转 ES5 PLUGIN_ES6: true # 压缩代码 PLUGIN_MINIFY: true

使用私钥文件

- name: Upload MiniProgram uses: docker://tencentcom/miniprogram-ci:latest env: # 小程序 AppID PLUGIN_APPID: wxsomeappid # 小程序源码目录(project.config.json 所在目录) PLUGIN_PROJECTPATH: ./ # 私钥文件路径 PLUGIN_PRIVATEKEYPATH: ./private.wxsomeappid.key # 版本号 PLUGIN_VERSION: v1.0.0

证书获取

  1. 登录 微信公众平台
  2. 进入 开发 → 开发管理 → 开发设置 → 小程序代码上传
  3. 下载代码上传密钥
  4. 如遇 IP 白名单问题,可选择关闭白名单限制

更多信息