更新记录

1.0.3(2021-06-22)

扩展示例兼容读取换行的changelog.md内容

1.0.2(2021-06-07)

新增.gitignore文件

查看更多

平台兼容性

阿里云 腾讯云
Vue2 Vue3
×
App 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序 快应用
3.1.16 app-vue app-nvue
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari

云函数类插件通用教程

使用云函数类插件的前提是:使用HBuilderX 2.9+


本插件是一个uni_modules钩子脚本,仅限uni_modules插件使用

为什么使用 uni_modules_tools

在实际开发中很多插件需要配置文件才可以正常运行,比如uni-id、uni-pay等; 有些配置内容属于密钥,在发表到插件市场的时候我们通常不希望这些配置被暴露。 传统的方式你需要手动备份密钥内容,上传结束后再将配置填回。这样插件作者发表插件会比较不便。

而现在有了 uni_modules_tools 只需配置/uni_modules_tools/config.js即实现

  • 在插件上传之前,自动根据配置改写项目中对应配置。
  • 上传结束(成功和失败都触发)后自动恢复项目中的配置。

自由扩展

扩展支持,扩展文件:change_after.js

  • 例子演示了,如何在修改完敏感配置后立即将最新内容推送至git。方便你一次操作即完成插件市场与git仓库代码的上传。
  • 另外,你可以根据自己的想法自由扩展

示例目录结构

├─ uni_modules                      // 存放uni_module规范的插件。
│   └─uni-config-center
│       └─uniCloud
│           └─cloudfunctions
│               └─common
│                   └─uni-config-center
│                       └─uni-id
│                           └─config.json
├─ manifest.json
├─ uni_modules.config.json      //uni_modules的配置文件
└─ uni_modules_tools
    ├─ copy                     //用于自动修改配置文件时的,临时备份目录
    ├─ config.js                //插件配置文件,下面会有示例说明
    ├─ change_after.js          //修改完相关敏感配置后执行的脚本,你可以在这里自定义逻辑
    ├─ main.js                  //插件核心代码,入口文件;你无需修改此文件中的代码,除非你了解内部逻辑
    └─ readme.md                //插件文档

使用方式

/uni_modules_tools/config.js的格式为:

{
    "文件路径" : {"键名":"改后的内容"}
}
  • 文件仅支持json格式,如:manifest.jsonuni-config-center下的config.json

使用示例,比如你需要:

  • 修改manifest.json文件的appid内容改为:请重新获取appid
  • 修改uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/uni-id/config.json 文件的内容app-plus -> oauth -> weixin 和 apple 下的 appid appsecret apple值为:请填写你的自己的appid 请填写你的自己的appsecret 请填写你的自己的bundleId
  1. 配置,根目录下的/uni_modules_tools/config.js文件,如下:
{
    "/manifest.json": {
        "appid": "请重新获取appid"
    },
    "/uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/uni-id/config.json": {
        "app-plus": {
            "oauth": {
                "weixin": {
                    "appid": "请填写你的自己的appid",
                    "appsecret": "请填写你的自己的appsecret"
                },
                "apple": {
                    "bundleId": "请填写你的自己的bundleId"
                }
            }
        }
    }
}
  1. 根目录下的/uni_modules.config.json配置如下:

    {
    "scripts":{
        "preupload": "node uni_modules_tools/main.js change",
        "postupload": "node uni_modules_tools/main.js recovery"
    }
    }
  2. 项目依赖hjson-js需要在uni_modules_tools目录,执行npm install完成依赖的安装

  3. 插件扩展

    • 可以根据自己需求设计扩展,扩展文件change_after.js。
    • 参考扩展示例,演示了:如何在修改完敏感配置后立即将最新内容推送至git

测试方式

  • 在项目根目录直接执行 node uni_modules_tools/main.js change 即可测试修改相关配置的效果
  • 在项目根目录直接执行 node uni_modules_tools/main.js recovery 即可测试恢复相关配置的效果

本插件中使用了hjson-js 感谢@hjson-js的作者

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问