目录

微信小程序云开发多个云函数共享依赖库解决方案之一

微信小程序云开发多个云函数共享依赖库解决方案之一

小程序云函数开发时,每个函数单独部署,当引入共享依赖(如引用 ../../common/util.js )时,部署的时候IDE并不会帮你上传相关文件,只会上传本函数文件夹下的文件。

搜了一下看到这个帖子: 啊哈哈,3年了并未解决。

我尝试使用了 git submodule 来解决,在操作复杂程度上还可以接受吧。高端操作可以去尝试打包 npm 包,哈哈。

前提:小程序项目已经使用 git 来管理了,没使用的得初始化一下。

下面为操作与测试过程

我使用的是微信的代码托管

1、为共享的依赖库新建一个 git 项目,并增加一些内容。

我新建的仓为 :taills/wx-cloud-functions-common.git

内有测试文件 util.js,文件内容如下:

function add(a,b){
  return a + b
}
function getTimestamp(){
  return (new Date()).getTime()
}

module.exports = {
  add : add,
  getTimestamp: getTimestamp
}

2、在小程序中新建 2 个云函数,我新建的云函数为 orderAdmin 、 userCenter ,如图:

https://i-blog.csdnimg.cn/blog_migrate/62fd280e013b9f00e0ac482802fac2e5.png

3、为两个函数增加 git module ,云函数多可自己重复以下操作即可。

git submodule add git@git.weixin.qq.com:taills/wx-cloud-functions-common.git cloudfunctions/userCenter/common

git submodule add git@git.weixin.qq.com:taills/wx-cloud-functions-common.git cloudfunctions/orderAdmin/common

4、保存更改。

git add .
git commit -am 'add cloud functions'

5、修改 wx-cloud-functions-common.git 项目内容并push,如增加 readme 等等,做为测试。

6、更新小程序所有云函数下的公共函数库,结果如图

git submodule foreach git pull

https://i-blog.csdnimg.cn/blog_migrate/952d89877ab22cfb57f64df2215a700b.png

7、这样操作之后,公共依赖库就可以统一管理了。

当某个云函数下 common 有更改了,把它 commit & push 后,执行第6步操作,就可以把更改同步到其他云函数当中,也可以多人、多项目公用。

8、函数调用测试。

https://i-blog.csdnimg.cn/blog_migrate/d4e37039bbd8e9331914b200fd4410b1.png

https://i-blog.csdnimg.cn/blog_migrate/4df0656d7f91da599672e574bcbffce1.png

9、小程序代码仓库显示为

https://i-blog.csdnimg.cn/blog_migrate/bd229a6f803270e4dde31a75dbd84219.png

小程序的仓库本身并不存储 公共依赖库的文件,只存储了一个链接。当 clone 小程序代码后,需要执行第 6 步,把 submodule 都拉下来。