uni-app对微信小程序云函数的适配

引言

熟悉uni-app的人应该都知道,uni-app并未对微信小程序云函数(本文统称云函数)进行相应的适配。但是,如果我们在某些业务场景的下需要使用云函数呢?我们知道,云函数可以复制到微信开发者工具,这样的话我们不得不每次编译一次就手动复制一次,不得不说麻烦至极。本文就问题做出以下解决方案。

本文环境

  1. Hbuilder X

Hbuilder X版本

  1. 微信开发者工具

微信开发者工具版本

创建云函数目录

首先,我们需要在uni-app项目文件夹下,创建一个云函数目录,路径随意,我这里是functions。然后先随便在里面放一些文件,这里以new_file.css为例。

修改manifest.json

在uni-app根目录下,修改manifest.json中的微信小程序项,结构如下


"mp-weixin" : {

        /* 小程序特有相关 */

        "appid" : "wxd7de467f6e6cf741",

        "cloudfunctionRoot": "./functions/", // 这一行就是标记云函数目录的字段

        "setting" : {

            "urlCheck" : false

        },

        "usingComponents" : true

    }

编写vue.config.js

  1. 我们在项目根目录创建vue.config.js文件

  2. 写入以下内容(如路径不一样请做相应适配)


const path = require('path')

const CopyWebpackPlugin = require('copy-webpack-plugin')



module.exports = {

	configureWebpack: {

		plugins: [

			new CopyWebpackPlugin([{

				from: path.join(__dirname, 'cloudFunctions'),

				to: path.join(__dirname, 'unpackage/dist', process.env.NODE_ENV === 'production' ? 'build' : 'dev', process.env

					.UNI_PLATFORM, 'cloudFunctions')

			}])

		]

	}

}
  1. 编译运行

发现提示如下内容

提示内容

说明未安装copy-webpack-plugin插件,我们手动安装一下。


npm install -save copy-webpack-plugin

TIPS: 截至2020.6.4, uni-app暂不支持copy-webpack-plugin 6.0版,请安装5.0版

📅 2021-05-16
vue3.x简单实现wx.showModal()
开发过微信小程序的同学想必都对wx.showModal不陌生。用起来还是比较方便的,以api的形式挂载在全局对象wx上,只需调用一下这个api即可显示一个弹窗,还可以根据设置的参数做一些定制。一些知名的组件库,也实现了此类功能。比如element的$message。所以,我也来分享一个简单实现方式,以此来加深对Vue的理解。
📅 2020-11-30
WeBlog丨typecho博客的小程序版

[Meting]

[Music title=“执着” author=“许巍” url="//blog.cdn.thinkmoon.cn/blog/typecho/KocBAFuKZUGAL5WlAEPNUPyXTc8102.mp3" pic="//p3fx.kgimg.com/stdmusic/400/20150718/20150718081906562115.jpg" /]

[/Meting]

weblog.png

WeBlog

996.icu

typecho博客的小程序版,支持微信小程序,QQ小程序

特性

音频播放

支持Aplayer插件播放audio/音乐

2020-02-21T03:36:30.png

跨平台编译

基于uni-app开发,支持多端编译。包括但不限于,APP,微信小程序,快应用,QQ小程序,支付宝小程序,H5移动端

| 微信小程序 | QQ小程序 |

| —- | —- | —- |

| 微信小程序二维码 | QQ小程序二维码 |

一键换肤

采用互补色彩设计原则,支持一键修改主题色。修改文件中的RGB值,即可一键换肤。下面提供一些颜色供以参考。

知乎蓝

| 首页 | 文章页 | 关于页 |

| —- | —- | —- |

| 2020-02-21T02:35:52.png | 2020-02-21T02:36:10.png | 2020-02-21T02:36:31.png |

思否绿

| 首页 | 文章页 | 关于页 |

| —- | —- | —- |

| 2020-02-21T02:42:26.png | 2020-02-21T02:42:41.png | 2020-02-21T02:42:52.png |

CSDN红

| 首页 | 文章页 | 关于页 |

| —- | —- | —- |

| 2020-02-21T02:44:27.png | 2020-02-21T02:44:41.png | 2020-02-21T02:44:53.png |

掘金蓝

| 首页 | 文章页 | 关于页 |

| —- | —- | —- |

| 2020-02-21T02:46:51.png | 2020-02-21T02:47:06.png | 2020-02-21T02:47:16.png |

简书红

| 首页 | 文章页 | 关于页 |

| —- | —- | —- |

| 2020-02-21T02:48:58.png | 2020-02-21T02:49:07.png | 2020-02-21T02:49:17.png |

GitHub灰

| 首页 | 文章页 | 关于页 |

| —- | —- | —- |

| 2020-02-21T02:50:57.png | 2020-02-21T02:51:07.png | 2020-02-21T02:51:16.png |

开发框架

本项目采用uni-app+colorUI开发

快速开始

小程序端

自行编译

适用于有前端基础的同学

  1. 下载Hbuilderx

  2. 将文件夹 uni-app 导入项目

  3. 发行至微信小程序

不编译直接使用

适用于零基础或基础较差的同学

  1. 打开uni-app/unpackage/dist/build/mp-weixin目录导入小程序开发者工具

  2. 激活插件后,修改请求链接文件 @/static/utils/api.js 中的baseUrl, 将域名更换为你的域名。 请修改文件@/common/vendor.js,搜索www.thinkmoon.cn替换为你的域名。

Typecho插件端

复制 WeBlog 到插件目录, 在后台激活并设置

特别鸣谢

虽然项目的作者显示的只有我一个,但是我一个人是无法完成该项目的,我想感谢与该项目相关的一些开源项目及作者。

感谢各位开源作者优秀的作品!

意见反馈

我会尽最大的努力确保文档和代码没有错误。可是,金无赤足,错误在所难免。如果您发现本项目中的任何错误,如错别字或代码错误等,希望您能及时给我反馈,您的反馈不仅可以让其他使用者收益,更可以提高项目的质量。

如果您对于项目有些好的建议,或者想法,欢迎您加入QQ群与我讨论。

QQ群

如果您想与本项目作者或者其他使用者沟通,欢迎加入项目开发交流群:1062676924

开发计划

  • 浏览量和点赞量数据表

  • 评论功能

  • 点击图片预览功能

  • 点击链接复制功能

  • Aplayer插件的支持

  • 一键修改主题色

  • 文章搜索

  • 接口加密

  • 评论回复功能

  • 评论通知功能

  • 网页端微信登录

  • 夜间模式

更新日志

v0.2.0

feature

  1. 采用完全的自定义组件模式,适配一键换肤

  2. 优化一键换肤的功能。

v0.1.9

feature

  1. 采用互补色彩设计原则,支持一键修改主题色

fixed

  1. 修复文章分类不同步的BUG

  2. 修复在部分情况下缩略图不显示的BUG

  3. 修复遇到

📅 2020-10-11
box-sizing是什么?
笔者初学前端时,遇到一些具有padding/border的子元素铺满父元素时,常常采用人工计算width的方式来实现效果。知道后来了解到box-sizing,才知道那种实现方式是多么的尴尬!
📅 2020-09-20
Vue自定义指令
Vue中的指令形如v-*,如v-if,v-show,v-model等。同时,除了Vue自带的一些默认指令外,Vue同时运行用户自定义指令,来扩展指令功能。
📅 2020-09-20