阅读 142

微信小程序自动上传&命令行交互 miniprogram-ci+inquirerJs

前言

大家好,我是啊肥,在使用uni-app的时候发现了这么一个问题,dev时需要开一个开发工具,当build需要上传代码时需要再打开一个,对于电脑不是很优秀的同学就很难受了(比如我),一系列百度后发现微信小程序自动上传——miniprogram-ci

准备工作

密钥

微信公众平台-开发-开发管理-开发设置中下载密钥,并且需要配置IP白名单。

安装

安装miniprogram-ci

npm i miniprogram-ci --save 复制代码

编写脚本/执行

脚本

最重要的一步,需要给项目增加一个node脚本,根目录创建uploadWx.js

const ci = require('miniprogram-ci') // 创建项目对象 const project = new ci.Project({   appid,    // 小程序appid   type: 'miniProgram',  // 类型,小程序或小游戏   projectPath: process.cwd(), // 项目路径   privateKeyPath: 'xxxx',  // 密钥路径   ignores: ['node_modules/**/*'],  // 忽略的文件 }) // 调用上传方法 ci.upload({   project,   version,   desc,   setting: {     es6: true, // 是否 "es6 转 es5"     minify: true,  // 是否压缩代码   }, }).then(res => {   console.log(res)   console.log('上传成功') }).catch(error => {   if (error.errCode == -1) {     console.log('上传成功')   }   console.log(error)   console.log('上传失败')   process.exit(-1) }) 复制代码

执行

node uploadWx.js 复制代码

inquirerJs

当我们打包完毕再执行上传代码,会多了一层的步骤,我发现了inquirer这个模块,如果在一些脚手架创建项目是看到某些选择选择yes/no的,是的,这个东西可以实现

实现的目的,在我们打包结束后将会弹出提示是否上传代码,y的时候会调用上文所说的ci

为什么会有no的情况呢,因人而异,对于本公司的情况,在某些时候需要给测试同事看数据,模拟用户之类的操作,打包代码预览,但是这时候我不喜欢这部分代码上传到公众平台

介绍

这是一个用户与命令行交互的工具

这个文章挺不错的

在这不详细介绍,主要目的是实现我们这一部分的功能,有兴趣的同学可以去详细了解一波

使用

inquirer有很多种类型,在这里我们只用到了confirm,也就是yes/no

脚本方法我们可以在上述的js继续编写

 const ci = require('miniprogram-ci');  const inquirer = require('inquirer');  创建项目对象  const project = new ci.Project({    appid, // 小程序appid    type: 'miniProgram', // 类型,小程序或小游戏    projectPath: process.cwd(), // 项目路径    privateKeyPath: 'xxx', // 密钥路径    ignores: ['node_modules/**/*'], // 忽略的文件  });  const uploadWx = () => {    // 调用上传方法    ci.upload({      project,      version,      desc,      setting: {        es6: true, // 是否 "es6 转 es5"        minify: true, // 是否压缩代码      },    })      .then(res => {        console.log(res);        console.log('上传成功');      })      .catch(error => {        if (error.errCode === -1) {          console.log('上传成功');        }        console.log(error);        console.log('上传失败');        process.exit(-1);      });  }; (() => {   inquirer     .prompt([       {         name: 'confirm',         type: 'confirm',         message: '是否上传代码',         default: true,       },     ])     .then(res => {       console.log(res.confirm);       if (res.confirm) {         uploadWx();       }     }); })(); 复制代码

最终执行

最终在package.json修改一下build的运行

"build": "cross-env NODE_ENV=production UNI_PLATFORM=mp-weixin vue-cli-service uni-build && node uploadWx.js" 复制代码

最终结果

image.png


作者:啊肥
链接:https://juejin.cn/post/7026593720006885390


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐