PHP-利用miniprogram-ci工具实现一键上传微信小程序代码

这篇具有很好参考价值的文章主要介绍了PHP-利用miniprogram-ci工具实现一键上传微信小程序代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

利用miniprogram-ci工具在后台实现一键上传微信小程序代码,避免了微信开发者工具的繁琐。

一、部署node环境

我用的是宝塔,可以直接在宝塔上安装Node.js版本管理器

miniprogram-ci,微信,php,微信小程序

二、安装miniprogram-ci

npm install miniprogram-ci --save

安装在指定文件夹里,这个可以根据项目情况选择。记住路径,后面需要用到。

我用的是ThinkPHP6,安装在了extend扩展文件夹里面的miniprogram-ci文件夹。

三、下载小程序代码上传密钥

微信公众平台-开发-开发管理-开发设置-小程序代码上传

miniprogram-ci,微信,php,微信小程序

下载小程序代码上传秘钥到项目,记录路径,后面要用。我放在了miniprogram-ci文件夹里面,方便调用。

IP白名单测试时可选择关闭,打开后需要填写项目IP才能正常使用。

四、编写上传脚本代码

编写上传脚本代码upload.js,放在miniprogram-ci文件夹里面。

const ci = require('miniprogram-ci')

//获取传递过来的参数
let data = process.argv[2];
data = JSON.parse(data);
if(data.length ==  0) {
    console.log('参数缺失');
    process.exit(-1);
}
let appid = data.appid;//小程序appid
let privateKeyPath = `../extend/miniprogram-ci/private.${appid}.key`;//秘钥路径
let desc = data.desc;//项目备注
let version = data.version;//版本号

// 注意: new ci.Project 调用时,请确保项目代码已经是完整的,避免编译过程出现找不到文件的报错。
const project = new ci.Project({
    appid: appid,
    type: 'miniProgram',
    projectPath: 'the/project/path',//小程序路径,即 project.config.json 所在的目录
    privateKeyPath: privateKeyPath,
    ignores: ['node_modules/**/*'],
})

ci.upload({
    project,
    version,
    desc,
    setting: {
        es6: true,//对应于微信开发者工具的 "es6 转 es5"
        es7: true,//对应于微信开发者工具的 "增强编译"
        minify: true,//上传时压缩所有代码,对应于微信开发者工具的 "上传时压缩代码"
    },
    onProgressUpdate: console.log,
})

五、PHP调用node代码实现上传小程序代码

解禁exec()函数,利用exec()函数调用node脚本。

    /**
     * @notes 上传小程序代码
     * @param $appid //小程序appid
     * @param $version //版本号
     * @param $desc //项目备注
     * @return array
     */
    public function upload($appid,$version,$desc)
    {
        try {
            //校验是否已安装miniprogram-ci工具
            if (!file_exists('../extend/miniprogram-ci/node_modules/miniprogram-ci')) {
                throw new \think\Exception('请先安装miniprogram-ci工具');
            }

            //上传小程序代码
            $data = [
                'appid' => $appid,
                'version' => $version,
                'desc' => $desc,
            ];
            $json_data = json_encode($data);
            $command = 'node ../extend/miniprogram-ci/upload.js '.escapeshellarg($json_data).' 2>&1';
            $output=null;
            $retval = null;
            exec($command, $output, $retval);
            if ($retval) {
                //错误
                $result = ['code'=>0,'msg'=>$output];
            } else {
                //成功
                $result = ['code'=>1,'msg'=>'上传成功'];
            }

            return $result;
        } catch (\Exception $e) {
            return ['code'=>0,'msg'=>$e->getMessage()];
        }
    }

六、结果

打开微信公众平台-版本管理,查看是否有上传的代码,默认开发者是ci机器人1。

miniprogram-ci,微信,php,微信小程序

下面是对应的CI工具文档链接,这个工具并不止上传一个功能,可以查看下面文档,根据项目需要增删改。

CI工具文档:https://www.npmjs.com/package/miniprogram-ci/v/1.9.8?activeTab=readme

 使用CI工具编译上传的代码遇到过部分插件在安卓手机报错的问题,可以适当调整对应的插件版本来适配。文章来源地址https://www.toymoban.com/news/detail-855999.html

到了这里,关于PHP-利用miniprogram-ci工具实现一键上传微信小程序代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信开发者工具 miniprogram_npm 未找到

    微信开发者工具中,打开集成了vant-weapp的项目,构建npm时,报错miniprogram_npm 未找到。 微信开发者工具,工具-----构建npm时,提示 微信开发者工具中,修改 project.config.json 中的,在vant-weapp的官方文档快速上手一节中也提到了。

    2024年02月15日
    浏览(31)
  • 利用Fastcgi+PHP-FPM非授权访问实现代码执行

    目录 Fastcgi Record Fastcgi Type PHP-FPM(FastCGI进程管理器) Nginx(IIS7)解析漏洞 security.limit_extensions配置 漏洞演示 今天要和大家分享的是利用Fastcgi和PHP_FPM实现未授权访问实现代码执行,首先我们需要知道cgi、fastcgi和php-fpm这些都是什么。 什么是CGI CGI全称是“公共网关接口”(Co

    2024年01月21日
    浏览(37)
  • Unity3d C#利用Editor编辑器拓展实现配置UI背景样式一键设置UI背景样式功能(含源码)

    在开发UI滚动列表的时候,经常会有每项的背景图不统一的情况,会间隔重复的情况居多。这种情况下,手动去设置间隔一行的背景图或者颜色是比较麻烦的。在此背景下,笔者尝试写个小工具,在搭建UI时配置一下循环背景的样式,可以通过一键点击后设置UI背景的样式,省

    2024年02月03日
    浏览(38)
  • CI/CD工具中的CI和CD的含义

    CI/CD 是现代软件开发方法中广泛使用的一种方法。其中,CI 代表持续集成(Continuous Integration),CD 则有两层含义,一是持续交付(Continuous Delivery),二是持续部署(Continuous Deployment)。下面是这些术语的详细解释: 持续集成(Continuous Integration):CI 是一种开发实践,开发人

    2024年02月07日
    浏览(36)
  • 开源CI/CD工具调研

    Definition of CI/CD Tools Definition of CI ( Continuous Integration ) Definition of CI ( Continuous Integration ) The process of automating the build, test and deployment of code changes to the production environment. 以上是关于CI/CD工具介绍这一部分,这里是参考了On the usage, co-usage and migration of CI/CD tools: A qualitative analysis这篇

    2024年01月17日
    浏览(44)
  • 站长工具之PHP单文件实现IP归属地批量查询

    站长/程序员工具之PHP单程序文件实现IP归属地批量查询 支持提取IP便于直接粘贴日志,去重防止重复查询浪费计算资源 按出现次数排序方便分析该IP行为。查询速度极快。

    2024年01月16日
    浏览(47)
  • Linux本地docker一键部署traefik+内网穿透工具实现远程访问Web UI管理界面

    Træfɪk 是一个云原生的新型的 HTTP 反向代理、负载均衡软件,能轻易的部署微服务。它支持多种后端 (Docker, Swarm, Mesos/Marathon, Consul, Etcd, Zookeeper, BoltDB, Rest API, file…) , 可以对配置进行自动化、动态的管理. Træfɪk 支持docker一键部署,内置 Web UI,管理相对方便,下面介绍Linux 本地

    2024年02月05日
    浏览(34)
  • 利用敏捷开发工具实现敏捷项目管理的实践经验分享

    Scrum中非常强调公开、透明、直接有效的沟通,这也是“可视化的管理工具”在敏捷开发中如此重要的原因之一 。通过“可视化的管理工具”让所有人直观的看到需求,故事,任务之间的流转状态,可以使团队成员更加快速适应敏捷开发流程。 所以,有敏捷工具的支撑是非常

    2024年02月11日
    浏览(32)
  • CF 云环境利用框架,一键化利用云上内网

    当我们平时拿到云服务的访问凭证即 Access Key 时,通常的做法可能是看下对方的 OSS 对象存储、或者在实例上执行个命令,但 AK 的利用远不止这些,通过 AK 我们可以做太多太多的事情,为了方便 AK 的利用,于是有了这个工具。 CF 是一个云环境利用框架,主要用来方便红队人

    2024年02月12日
    浏览(31)
  • 利用大数据分析工具,实现多场景可视化数据管理

    https://yanhuang.yuque.com/staff-sbytbc/rb5rur? 购买服务器 购买腾讯云服务器,1300 元新人价,一年时间 ●4核16G内存 ●CentOS 6.7 (补充说明:最新的 2.7.1 GA 版本,8G 内存也是可以跑的,可以先使用8G,不够再做升级)。 安装docker环境 安装docker,速度还挺快的,大概3~5分钟内 1、注册鸿

    2024年02月14日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包