使用miniprogram Ci实现微信小程序自动发包

1月 15, 2026 · 2 分钟阅读时长 · 857 字 · -阅读 -评论

小程序每次发一个新版本到体验版,我需要做的是,打包=>打开微信开发者工具=>点击上传=>点击提交,总之很繁琐。这里的发布体验版流程充满了低效,所以我想通过脚本来实现自动化发包,查了下官方有miniprogram-ci这个NPM包,经过摸索终于解决了痛点,但官方文档实在是太简陋了,记录下我的解决方案。

我本来的项目情况

我是使用taro,每次需要发包前需要先执行npm run build:weapp,编译打包后的文件夹在/dist/weapp,每次是将该文件夹进行上传发布。

使用miniprogram-ci实现自动发包

发布开发版的脚本代码如下。基于如下代码块,做一个publish.js脚本即可。至于结合打包也都很easy了。

(async () => {
  const project = new ci.Project({
    appid: "",
    type: "miniProgram",
    projectPath: path.resolve(__dirname, "../", "dist"),
    privateKeyPath: path.resolve(__dirname, "private.key"),
    ignores: ["node_modules/**/*"],
  });

  // 通用编译配置
  const setting = {
    // 关键:禁用 ES6  ES5,因为 Taro 已经处理过了
    es6: false,
    // 禁用增强编译
    enhance: false,
    // 禁用 ES7  ES5
    es7: false,
    // 代码保护(混淆)
    minified: true,
    // 是否自动补全样式
    autoPrefixWXSS: true,
    // 压缩 WXML
    minifyWXML: true,
    // 压缩 WXSS
    minifyWXSS: true,
    //  JS 编译成 ES5
    codeProtect: false,
  };

注意

官方文档很多细节都是没有提及,这里说明下。

  1. 注意如果本身该版本在微信公众平台设置为了体验版,那么发布后就是体验版,否则就是开发版。
  2. private.key文件需要从微信公众平台下载,路径:开发->开发设置->下载开发者工具配置文件,解压后可以找到private.key文件。
  3. 这里projectPath即project.config存在的目录,我因为使用的taro,因此taro负责了编译到微信小程序语言,因此我在上述配置中就需要关闭编译那些开关。如果本身你是原生开发,那么我理解可以直接选择走项目配置即可。
  4. 本身ci工具的upload仅仅是有个大小检测,并不会检查语法之类的,因此假如选错了目录,或者多配置了编译等,结果就是上传成功,但预览白报错,比如Component is not found in path "wx://not-found"

总结

  1. miniprogram-ci不是好不好的问题,凑合用吧。
  2. 微信小程序文档真的够烂,社区也就那样,随便一翻就是吐槽,说明什么,烂但你又不得不用,凑合吧。

广告赞助

Alan H
Authors
开发者,数码产品爱好者,喜欢折腾,喜欢分享,喜欢开源