当前位置: 首页 > news >正文

hbuilder + uniapp +vue3 开发微信云小程序

1、创建项目:

2、创建项目完成的默认目录结构:

3、在根目录新建一个文件夹cloudFns(文件名字随便),存放云函数源码:

4、修改manifest.json文件:添加 小程序 appid和cloudfunctionRoot,cloudfunctionRoot的value必须和第三步创建目录的名字保持一致:

5、添加vite.config.js配置文件:

vite.config.js:

import { defineConfig } from 'vite';
import fs from 'fs-extra';
import path from 'path';
import uni from '@dcloudio/vite-plugin-uni';function copyFile() {return {enforce: 'post',async writeBundle() {await fs.copy(path.resolve(__dirname, 'cloudFns'),path.join(__dirname,'unpackage/dist',process.env.NODE_ENV === 'production' ? 'build' : 'dev',process.env.UNI_PLATFORM,'cloudFns'));},};
}export default defineConfig({plugins: [uni(),copyFile()],
});

6、运行到微信开发工具:

7、右键云函数目录,创建云函数:(默认创建获取openId的云函数)

8、右键cloudApis 部署云函数:

9、在微信开发工具点击云开发就看到云函数了:

(这个时候其实就可以,使用云函数了),问题是下次重新运行项目的,本地的云函数目录就没有了,原因是HBuilder重新编译,这个时候并不会有存在云函数。所以要把cloudApis这个目录复制到cloudFns目录下,这样云函数的源码在本地才会保留下来,(个人理解)

注:修改云函数本地源码之后,1、在HBuilder中要重新编译,2、在微信开发工具重新部署云函数

10、把cloudApis目录复制到项目源码的cloudFns目录下:

11、在App.vue中初始化云环境:

12、使用云函数:

<template><view class="content">openId:[{{openid}}]</view>
</template><script setup>import {ref,onMounted} from 'vue'const openid=ref(undefined)onMounted(getOpenId)async function getOpenId() {const {result} = await wx.cloud.callFunction({name: 'cloudApis',data: {type: "getOpenId"}})	openid.value=result.openid		}	
</script>

13、多运行环境配置:

npm init -y

然后再package.json中添加:

"uni-app": {"scripts": {"dev": {"title": "开发","env": {"UNI_PLATFORM": "mp-weixin","ENV": "dev"}},"test": {"title": "测试版","env": {"UNI_PLATFORM": "mp-weixin","ENV": "test"}},"prod": {"title": "生产版","env": {"UNI_PLATFORM": "mp-weixin","ENV": "prod"}}}}

访问环境变量:process.env.ENV

相关文章:

  • 爬虫框架Scrapy
  • scrapy介绍,并创建第一个项目
  • 网上商城、宠物商城源码(Java)
  • 1.查看表的基本结构,表的详细结构和修改表名
  • CSS video控件去掉视频播放条
  • P5744 【深基7.习9】培训
  • 计算机网络之网络层
  • 微服务学习:Ribbon实现客户端负载均衡,将请求分发到多个服务提供者
  • Qt12.8
  • PyQt6 QCalendarWidget日历控件
  • 12、组合模式(Composite Pattern,不常用)
  • 多功能智能遥测终端机 5G/4G+北斗多信道 视频采集传输
  • mac如何永久设置环境变量
  • 如何为 3D 模型制作纹理的最佳方法
  • 【FPGA】Verilog:BCD 加法器的实现
  • [译]Python中的类属性与实例属性的区别
  • 0x05 Python数据分析,Anaconda八斩刀
  • 10个确保微服务与容器安全的最佳实践
  • Angular 2 DI - IoC DI - 1
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • HomeBrew常规使用教程
  • interface和setter,getter
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • Javascript设计模式学习之Observer(观察者)模式
  • PHP 的 SAPI 是个什么东西
  • python学习笔记-类对象的信息
  • React-Native - 收藏集 - 掘金
  • web标准化(下)
  • 创建一种深思熟虑的文化
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 聊聊redis的数据结构的应用
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 使用putty远程连接linux
  • 在Mac OS X上安装 Ruby运行环境
  • ​如何在iOS手机上查看应用日志
  • # 数论-逆元
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • $.ajax,axios,fetch三种ajax请求的区别
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (十八)三元表达式和列表解析
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • *** 2003
  • *1 计算机基础和操作系统基础及几大协议
  • .net Stream篇(六)
  • .NET 药厂业务系统 CPU爆高分析
  • .net中调用windows performance记录性能信息
  • @Resource和@Autowired的区别