nodejs脚本方式实现微信小程序代码自动上传生成体验版

背景

小程序的代码有一些轻微改动,不想在微信开发工具中进行修改上传,因为这段时间没有用这个工具了。

最轻的方法是直接在代码仓库中进行修改,可是,修改之后的代码还要上传到微信后台,也就是通常情况需要在微信开发工具中点击“上传”按钮上传代码。

那经过一番寻找,找到了提交代码后既可以自动提交代码并生成体验版的方法。

本方法利用了腾讯提供的工具miniprogram-ci,参考:

  • 下载Node.Js: http://nodejs.cn/download/

  • 微信小程序开发辅助>CI: https://developers.weixin.qq.com/miniprogram/dev/devtools/ci.html

  • <微信小程序入门(三):miniprogram-ci 实现小程序代码的上传等操作>: https://blog.csdn.net/sulia1234567890/article/details/120131224

Node.Js脚本方式实现上传

工作环境

Node.Js + VS Code

我重装了系统,发现机器上还没有安装Node,那第一件事情就是在开发机上安装Node,地址如上。

  • 安装cnpm,加速访问

(1)输入以下命令

npm install -g cnpm --registry=https://registry.npm.taobao.org

(2)输入cnpm -v输入是否正常

cnpm -v

Node的项目,开发工具就用VS Code吧,正好机器上已经安装好了。
Git等必备工具,这个就不说了

创建“自动提交”项目

  1. 在VSCode中,打开CMD终端,选一个项目目录,cd到项目目录下,

可以先初始化一下项目,得到一个项目配置文件package.json:

npm init

接着运行命令来安装miniprogram-ci模块:

cnpm install miniprogram-ci --save 

(安装完成后,会自动生成node_modules目录和package.json文件)

放置密钥

在 package.json 文件中添加上传密钥所在路径。本文存放该密钥到项目根目录

// package.json
  ......
  "uploadKey": "private.wxappid.key",
  ......

这个密钥需要在微信后台下载:"微信公众平台->开发->开发管理->开发设置"下载代码上传密钥,并配置 IP 白名单(强烈建议),打开后只有白名单中的 IP 才能调用相关接口。我们建议所有开发者默认开启这个选项,降低风险,代码上传密钥拥有预览、上传代码的权限,密钥不会明文存储在微信公众平台上,一旦遗失必须重置,请开发者妥善保管

获得密钥文件一般为,private.${appid}.key。

添加微信小程序源码

在项目目录下,建立“mini-program”文件夹,(可以自己取个不同的名字),将原来的微信源码全部拷贝到这个目录下。

为了不重复建微信小程序的源码库,可以将源码中的“project.config.json”复制一份放到项目目录下,并增加小程序源码目录的参数:

   //  file: project.config.json
  "miniprogramRoot": "mini-program/",

添加上传脚本

在项目根目录下添加 start.js 文件,在里面编写具体代码。

首先,生成一个CI项目实例:

const ci = require('miniprogram-ci')
// 注意: new ci.Project 调用时,请确保项目代码已经是完整的,避免编译过程出现找不到文件的报错。
const project = new ci.Project({
  appid: 'wxsomeappid',
  type: 'miniProgram',
  projectPath: 'mini-program',
  privateKeyPath: 'the/privatekey/path',
  ignores: ['node_modules/**/*'],
})

这段代码模板从上述链接2拷贝下来的,代码中appid、type、privateKeyPath都需要根据自己的情况进行修改

然后,实现一个上传方法

  const uploadResult = await ci.upload({
    project,
    version: '1.1.1',
    desc: 'hello',
    setting: {
      es6: true,
    },
    onProgressUpdate: console.log,
  })
  console.log(uploadResult)

这段代码模板也是从上述链接2拷贝下来的,详情参考:https://developers.weixin.qq.com/miniprogram/dev/devtools/ci.html

自动化提交到体验版

在VSCode中,可以通过直接通过终端的node命令执行start.js
即在项目目录下运行命令:

node start.js

当然,如果是直接下载的代码,那可能需要运行命令以解决依赖包缺失的问题:

cnpm install

一个小坑是,这里的“cnpm install”如果改成“npm install”,就会报错,没有去看具体是哪个包导致的。

接着在小程序页面 —> 管理 —> 版本管理中,检查代码是否顺利上传。如果已经上传,那么第一次,可以将这个版本手动设置为体验版。

如果这里还是需要运行一下node命令,那还是比较麻烦,最后的自动化实现是建立流水线,在提交代码后自动地运行上述两条命令,这样就实现了只要微信小程序一提交代码,本功能就会自动触发,提交代码到体验版。

更进一步,有文章提到用其它的自动化方法,可以自动提交审核以及自动发布,这个就根据项目的情况在具体确定了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五角大寨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值