/install miniprogram-ci
miniprogram-ci
WeChat Mini Program CI tool · v2.1.31 · Node >= 16.1.0
A compilation module extracted from the WeChat Developer Tools for mini program/mini game projects. Supports both Node.js script calls and CLI commands.
Installation
npm install miniprogram-ci
# Global install (for CLI usage)
npm install -g miniprogram-ci
Prerequisites
- Get AppID — appid of your mini program/mini game
- Generate private key — WeChat Official Platform → Management → Development → Development Settings → Mini Program Code Upload → Generate "Upload Private Key" (
.keyfile) - Configure IP whitelist (recommended) — Only whitelisted IPs can call upload/preview APIs
- Key security — Private keys are not stored in plaintext on the platform. Must reset if lost.
Quick Start
const ci = require("miniprogram-ci");
(async () => {
const project = new ci.Project({
appid: "wx0000000000000000",
type: "miniProgram", // miniProgram | miniProgramPlugin | miniGame | miniGamePlugin
projectPath: "./dist/build/mp-weixin",
privateKeyPath: "./key/private.wx.xxxxx.key",
ignores: ["node_modules/**/*"],
});
// Upload code
const uploadResult = await ci.upload({
project,
version: "1.0.0",
desc: "Fixed several issues",
setting: { es6: true, minify: true },
onProgressUpdate: console.log,
robot: 1,
});
console.log("subPackageInfo:", uploadResult.subPackageInfo);
// Preview (generate QR code)
await ci.preview({
project,
desc: "Preview version",
setting: { es6: true },
qrcodeFormat: "image", // image | base64 | terminal
qrcodeOutputDest: "./preview.jpg",
pagePath: "pages/index/index",
searchQuery: "id=123",
onProgressUpdate: console.log,
robot: 1,
});
})();
Main API
| Method | Purpose | Key Parameters |
|---|---|---|
ci.upload() |
Upload code | project, version(required), desc, setting, robot |
ci.preview() |
Preview (QR code) | project, qrcodeOutputDest(required), desc, setting, robot |
ci.buildNpm() |
Build npm | project, options.ignores |
ci.getDevSourceMap() |
Get latest sourceMap | project, robot(required), sourceMapSavePath(required) |
ci.cloudFunctionDeploy() |
Upload cloud function | project, env(required), name(required), path(required) |
ci.cloudFileUpload() |
Upload cloud storage/static hosting | project, env(required), path(required) [alpha] |
ci.cloudContainerDeploy() |
Deploy cloud container version | project, env(required), containerRoot + version [alpha] |
ci.proxy() |
Set proxy | proxyUrl(optional) |
Compile Settings
{
es6: true, // ES6 → ES5
es7: true, // Enhanced compilation
minifyJS: true, // Minify JS
minifyWXML: true, // Minify WXML
minifyWXSS: true, // Minify WXSS
minify: true, // Minify all
codeProtect: true, // Code protection
autoPrefixWXSS: true, // Auto prefix CSS
}
Project Object
new ci.Project({
appid: "wx...", // required
projectPath: "./dist", // required (directory containing project.config.json)
privateKeyPath: "./key", // required
type: "miniProgram", // optional, defaults to miniProgram
ignores: ["node_modules"],// optional
})
CLI Commands
# Upload
miniprogram-ci upload \
--pp ./dist \
--pkp ./key/private.key \
--appid wx0000000000000000 \
--uv 1.0.0 \
--ud "Version description" \
--r 1
# Preview
miniprogram-ci preview \
--pp ./dist \
--pkp ./key/private.key \
--appid wx0000000000000000 \
--uv 1.0.0 \
--ud "Preview description" \
--qrcode-format image \
--qrcode-output-dest ./preview.jpg
Proxy Configuration
Auto-detection order: HTTPS_PROXY → https_proxy → HTTP_PROXY → http_proxy → npm config → manual
ci.proxy("http://127.0.0.1:8888"); // manual
ci.proxy(); // clear, restore auto
servicewechat.com is automatically added to no_proxy.
Return Values (upload/preview)
{
subPackageInfo: [
{ name: "__FULL__", size: 123456 }, // entire package
{ name: "__APP__", size: 100000 }, // main package
{ name: "subPack1", size: 23456 }, // sub package
],
pluginInfo: [
{ pluginProviderAppid: "wx...", version: "1.0.0", size: 12345 },
],
devPluginId: "wx...",
}
Third-Party Platform
Supported since 1.0.28. Note:
- Project must have a valid
ext.json - Use the private key of the development mini program bound to the third-party platform
- IP whitelist also belongs to that development mini program
- The appid passed in must be the bound development mini program's appid
Robot Parameter
Specify which CI robot to use (1~30), enabling concurrent operations without conflicts.
Reference Files
| File | Content |
|---|---|
| references/cloud.md | Cloud development (cloud functions/cloud containers/cloud storage) |
| references/cli.md | CLI command detailed options |
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install miniprogram-ci - 安装完成后,直接呼叫该 Skill 的名称或使用
/miniprogram-ci触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
WeChat Mini Program CI 是什么?
Automate WeChat Mini Program code upload, preview, npm build, and cloud deployments with CI/CD support using Node.js or CLI without opening DevTools. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 53 次。
如何安装 WeChat Mini Program CI?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install miniprogram-ci」即可一键安装,无需额外配置。
WeChat Mini Program CI 是免费的吗?
是的,WeChat Mini Program CI 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
WeChat Mini Program CI 支持哪些平台?
WeChat Mini Program CI 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 WeChat Mini Program CI?
由 OpenLark(@openlark)开发并维护,当前版本 v1.0.0。